Cleaning up changes from JCLOUDS-106
JCLOUDS-138. Add CloudStackImageExtension support.
JCLOUDS-101 - Add SecurityGroupExtension for compute

- Adds the SecurityGroupExtension to compute, with tests and stub
support.
- Gets everything else to actually build against this.
- Unifies on compute's IpPermission/IpProtocol, eliminating EC2's.
- Converters from EC2/Nova/CloudStack SecurityGroup (and rules, for
the latter two) to the compute SecurityGroup (and rules, etc).
- EC2SecurityGroupExtension and tests.
- AWSEC2SecurityGroupExtension and tests - depends on JCLOUDS-99.
JCLOUDS-150 - Removal of async from AWS - specifically EC2

...and EC2-related elsewhere. Also moved *Client -> *Api, and moved
everything from .../services to .../features, and threw in a bunch of
Optionals to fit the EC2Api approach.

And a very big tip of the hat to nacx for figuring out the generics
stuff my brain just could not handle. =)
JCLOUDS-151 - CloudStack refactored to remove async, *Client renamed to *Api.
JCLOUDS-149: Reuse checkstyle configuration
JCLOUDS-126 - Support and tests for region selection in swift-keystone BlobStore
JCLOUDS-160: Support tags in EC2 images

Based on the work made by Brock Noland
Added test environment for Quantum v2.0 client

This patch adds test environment for the future
Quantum v2.0 client implementation.

Signed-off-by: Andrey Trubitsyn <andrey@sentilla.com>
Checkstyle fixes
A 401 error should result in re-authenticating for a new token
Quantum renamed to Neutron
Add Swift-specific MD5 checksum header

Tested against cloudfiles-us, hpcloud-objectstorage, and
swift-keystone.  Reference for ETag:

https://answers.launchpad.net/swift/+question/157064
JCLOUDS-161: large blob support for Azure

Large blob support for AzureClient; the next step of this is to
support PutOptions.multipart and digest a blob into 4M parts. This
just implements the Azure interaction.
Set provider id in AtmosClientLiveTest

This allows Atmos live tests to run.
[trivial] demote Boolean to primitive
Add Atmos-specific MD5 checksum header

Tested that Atmos Online and Synaptic Atmos both enforce this.
Upgrade to gson 2.2.4
https://issues.apache.org/jira/browse/JCLOUDS-117
Introduce StripExpectHeader filter and a property to control it.

Some providers (specifically HP Cloud and Google Cloud Storage) do not
properly support Expect: 100-continue headers. JDK7 is stricter in its
handling of the Expect header than JDK6 -- in particular, it expects
servers to properly respond to an expect header and times out only if a
prior timeout did not exist on the underlying HTTP connection. As a
result, JDK7 tests against these providers hang and fail.

This commit introduces a new filter -- appropriate called
StripExpectHeader -- that is controlled by the property
jclouds.strip-expect-header. The property defaults to false to preserve
existing behavior but allows applications to tweak Expect header
handling.

Tested by running HPCS live tests with JDK7 -- previously most of these
tests would fail with timeouts.

Closes JCLOUDS-181
Do not eagerly check for existence in FilePayload

This is a TOCTOU violation and FilePayload.getInput already propagates
this.  This commit allows external callers like jclouds-cli to
introspect on the exception type, returning a more friendly error
message in some situations.