GCE Driver.

This is a continuation of https://github.com/docker/machine/pull/7

I accidentally screwed up my remote branch, and then it got merged somehow.

I had a couple questions from that PR:

First, the GCE API uses oauth2 with refresh tokens. My current implementation caches tokens in driver.storePath, but this is obviously deleted when a machine is rm'ed, and only applies to a single machine. Would you be opposed to caching them one level up? So .docker/hosts/gce/ instead of .docker/hosts/gce//

Second, my test is more of an integration test and actually creates/rm's a machine. It's currently failing travis because it needs a real project ID to run against. Are you interested in having this kind of test? If so, how do you want me to block it from the travis run?

Signed-off-by: Dan Lorenc <lorenc.d@gmail.com>
another thing to consider is that the go routine might block forever on Stdin.Read(), and if the user happen to enter something later, it will block on the channel send operation.