converted locations to using strongly typed keys -- first part of major cleanup
introduce a new AbstractCloudMachineProvisioningLocation,
and restructured JcloudsLocation so a bit easier to follow
added support for sub-locations, and minor location API tidy
refactored jclouds-location to separate project
moved jclouds dependencies out of core and into locations/jclouds