create a pub resolver class, for use in resolving package: imports

This CL adds a `PubResolver` class to the `pub.dart` library:

- add a `PubResolver` class, which can resolve `package:` references to workspace Files and resolve workspace files to the most appropriate `package:` reference
- add a builder to handle pubspec.yaml files. This builder updates info about the package name for the project, for use in resolving self-references
- the builder also can generate a workspace marker if we encounter syntax errors when parsing the yaml file
- fix an issue where the dart build was clearing all markers, not just dart markers
- add tests

@keertip

Keerti, is there a better way to parse pubspec files? I'm using the `yaml` package.