Big cleanup on Google Compute Service

 * Rewrites InstanceTemplate as NewInstance, strictly from docs.
 * Rewrites Metadata to have the same shape as in json, avoid really complicated json parser.
 * Rewrites GoogleComputeEngineServiceAdapter.createNodeWithGroupEncodedIntoName to use less network requests.
 * Removes untested aspects of TemplateOptions, except additional disks.
 * Removes complexity around location by using aggregate apis, which removes custom location module
 * Switches to uris as ids, which removes the InstanceInZone and MachineTypeInZone class
 * Stop using metadata to temporarily store jclouds image id as it is reachable via disks[0].source -> disk.sourceImage
 * Starts using MWS, which makes it possible to read the offline tests for compute service
 * Reduces newlines needed in tests by switching mock project name to "party"

I don't yet understand why we are placing public key fingerprint here. There are no comments in the prior code as to why. For example, is this a google convention? Is this some default way to have the instance metadata server place a file on disk? Was this something "handy"?