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