Fixing an error message about an unassignable backend
JCLOUDS-427: Avoiding Guava reflection code broken in Java 7u51

- Adding a version of TypeToken.where that replaces two parameters in one go
- Avoiding TypeToken type parameter replacement with wildcard bounds

Works around https://code.google.com/p/guava-libraries/issues/detail?id=1635
JCLOUDS-431: Added m3.medium and m3.large instance types to EC2
JCLOUDS-415: Preparing for Guava 16.0

Invokable.equals has changed from 15 to 16 so we need to implement the check differently ourselves.
JCLOUDS-415: Upgrading Guava 15.0 -> 16.0
JCLOUDS-438: Map S3 code BucketAlreadyExists

Mapping to ResourceAlreadyExistsException allows external callers to
handle this situation specifically.