Fix typos
"Fix" compatibility with GCE configuration schema
Use semaphores to allow multiple threads to share the same GCE provider object.
Refactor the `Cluster.start` method to use a pool of threads (one
thread per virtual machine right now)