Update target parsing

This makes several changes to target parsing:
- Rename "packages" to "targets".
- Assume providers are locally namespaced unless explicitly specified as
  global.
- Implicitly create a provider for each project.
- Allow projects to define targets within their own manifests as well as
  through external provider files.
- Make target names globally unique.
- Allow dependency-only targets.

Change-Id: I9b28dc3415837e82835ce3e1374b866cd2bce14d
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/qg/+/124891
Commit-Queue: Alexei Frolov <frolv@google.com>
Reviewed-by: Erik Gilling <konkers@google.com>
9 files changed
tree: 2fcb3478ea315534e55606000b0b3cea6a383d7b
  1. qg/
  2. qg-cli/
  3. tools/
  4. .gitignore
  5. Cargo.toml
  6. rustfmt.toml