Updates API and adds support for GCE

Points of interest:
* Nomenclature. Wanted to avoid clash with jclouds domain objects. @richardcloudsoft suggested block device. Usage is currently a bit inconsistent; new code and modifications are generally referred to as a block device, old bits still use volume.
* Live tests should all pass (though they take quite a while to run).
* Users of the API now give `char deviceSuffix` rather than both `volumeDeviceName` (e.g. /dev/sdb) and  `osDeviceName` (e.g. /dev/xvdb). The volumeDeviceName is exposed in the `AttachedBlockDevice` interface. I'm not sure if this is necessary.
* `BlockDevice.attachedTo` and `AttachedBlockDevice.mountedAt` are a bit confusing because they don't take an action, they're only used by the volume managers to return a new instance of the correct type _after_ taking the action. Perhaps they could be on an internal interface instead.
* The two Options classes could be turned into builders, but I didn't think it important for now.
* Documentation should be up to date.