GCE is missing ProviderMetadata and locations needed rework.

This change adds ProviderMetadata, which allows us to properly tag locations of zones. It also consolidates how locations are created and what's derived from them.

For example, you can see that now, zones are correctly linked to their region, and have iso codes.
```
WARNING: location {scope=ZONE, id=asia-east1-a, description=asia-east1-a, parent=asia-east1, iso3166Codes=[TW]}
Nov 06, 2014 9:38:50 AM org.jclouds.compute.internal.BaseComputeServiceLiveTest testGetAssignableLocations
WARNING: location {scope=ZONE, id=asia-east1-b, description=asia-east1-b, parent=asia-east1, iso3166Codes=[SG]}
Nov 06, 2014 9:38:50 AM org.jclouds.compute.internal.BaseComputeServiceLiveTest testGetAssignableLocations
WARNING: location {scope=ZONE, id=asia-east1-c, description=asia-east1-c, parent=asia-east1, iso3166Codes=[TW, SG]}
Nov 06, 2014 9:38:50 AM org.jclouds.compute.internal.BaseComputeServiceLiveTest testGetAssignableLocations
WARNING: location {scope=ZONE, id=europe-west1-a, description=europe-west1-a, parent=europe-west1, iso3166Codes=[IE]}
Nov 06, 2014 9:38:50 AM org.jclouds.compute.internal.BaseComputeServiceLiveTest testGetAssignableLocations
WARNING: location {scope=ZONE, id=europe-west1-b, description=europe-west1-b, parent=europe-west1, iso3166Codes=[BE]}
Nov 06, 2014 9:38:50 AM org.jclouds.compute.internal.BaseComputeServiceLiveTest testGetAssignableLocations
WARNING: location {scope=ZONE, id=europe-west1-c, description=europe-west1-c, parent=europe-west1, iso3166Codes=[IE, BE]}
Nov 06, 2014 9:38:50 AM org.jclouds.compute.internal.BaseComputeServiceLiveTest testGetAssignableLocations
WARNING: location {scope=ZONE, id=us-central1-a, description=us-central1-a, parent=us-central1, iso3166Codes=[US]}
Nov 06, 2014 9:38:50 AM org.jclouds.compute.internal.BaseComputeServiceLiveTest testGetAssignableLocations
WARNING: location {scope=ZONE, id=us-central1-b, description=us-central1-b, parent=us-central1, iso3166Codes=[US]}
Nov 06, 2014 9:38:50 AM org.jclouds.compute.internal.BaseComputeServiceLiveTest testGetAssignableLocations
WARNING: location {scope=ZONE, id=us-central1-f, description=us-central1-f, parent=us-central1, iso3166Codes=[US]}
```

I asked around and found that we intentionally do not publish this information. 
Bearing that in mind we would suggest not including this information at this point.