Resolver

@munificent and @nex3 I have changed the API to `compile` in async_await.dart to take a second argument which is a path.  As far as I can tell, this is only used by the analyzer in error reporting.  It seems like an improvement, but I can make it optional if you think that's better.

The DART_SDK environment variable is used to find the SDK.

Running over pub on my workstation (using the shell script `sdk/bin/pub --version`) before this change took 2.9 seconds.  After it takes 6.2 seconds.  Removing the use of the CodeFormatter in pub, which probably isn't needed any more, reduces that to 4.0 seconds.  Still kind of disappointing.