move to using a single directory to store user's projects

Fixes https://github.com/dart-lang/spark/issues/587. This:

- adds a ProjectLocationManager class to spark.dart. It stores a single location to create user projects in. This value is available via a Future. It the user has not yet chosen their projects directory, the ProjectLocationManager class will display a folder chooser dialog the first time the projects dir is requested.
- changes git clone to use this class; simplifies the git clone dialog to not ask the user where they want to clone to

@dinhviethoa @gaurave