Fix subtasks-external lookup to not fail when preloaded from another file

Before this change, plugin failed to lookup a subtasks-external when
a task with this subtasks-external was preloaded using a task
reference [1]. While preloading a task, all the subtasks are copied
to the current task. Since the subtasks-external property was a String,
it does not maintain the information regarding the location of the
subtasks-external. Thus, fix this issue by using ConfigSourcedValue as
the type for subtasks-external property, which helps in tracking the
location of the subtasks-external. Add tests for the same.

[1]
file: `All-Projects:refs/meta/config:task.config`
```
[root "root task"]
    applicable = status:open
    preload-task = //common.config^simple task with subtasks
```

file: `All-Projects:refs/meta/config:task/common.config`
```
[task "simple task with subtasks"]
  applicable = is:open
  subtasks-external = user special tasks

[external "user special tasks"]
  user = testuser
  file = special.config
```

Change-Id: I1aff32ae5885c3969ef8fdce7c019d3b448109f5
3 files changed