Fix subtask lookup to not fail when preloaded from another file
Before this change, plugin failed to lookup a subtask when a task
with this subtask was preloaded using a task reference [1]. While
preloading a task, all the subtasks are copied to the current task.
Since the subtask property was a String, it does not maintain the
information regarding the location of the subtask. Thus, fix this
issue by using ConfigSourcedValue as the type for subtask property,
which helps in tracking the location. 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 subtask
```
file: `All-Projects:refs/meta/config:task/common.config`
```
[task "simple task with subtask"]
applicable = is:open
subtask = passing task
[task "passing task"]
applicable = is:open
pass = True
```
Change-Id: Ieff1da7a47b63514fb8d0437340e096e03ad54bd
6 files changed