[devicelab] Run tasks concurrently.

1. Add a job module to help create sub builds, which has a lot of customizations and simplifications than the fuchsia/subbuild module.

2. In the future we will add a builder that runs all devicelab tests for every flutter commit.

3. I have tried an optimization of isolating the flutter/flutter checkout to sub-jobs. It doesn't work because a sub-job needs 70 secs to download the isolate, while checking out flutter/flutter only takes 20 secs.

4: Example test: https://chromium-swarm.appspot.com/task?id=4d7414a646f94c10

Bug: https://github.com/flutter/flutter/issues/53789
Change-Id: I60c8da510384bfff3093580d90331ea57c0d8045
Reviewed-on: https://flutter-review.googlesource.com/c/recipes/+/4263
Reviewed-by: Godofredo Contreras <godofredoc@google.com>
Commit-Queue: Tong Wu <wutong@google.com>
15 files changed
tree: b84cd515b2a7ead804114e72f454751962c14c72
  1. infra/
  2. recipe_modules/
  3. recipes/
  4. .gitignore
  5. .style.yapf
  6. OWNERS
  7. recipes.py