JCLOUDS-510 Delete objects in a container efficiently.

The existing approach for deleting objects in a container suffers
from a head-of-line blocking problem. This commit implements a better
scheme which does not have that problem. This scheme uses a counting
semaphore for making sure that a certain number of futures are
issued in parallel. As each of these futures is completed, one
permit of the semaphore is released.

Added unit tests for testing this new scheme.
JCLOUDS-516: Add ssh agent support via sch agentproxy
JCLOUDS-347: Implement a poor-mans rollback if CloudStack static NAT creation fails
JCLOUDS-515: Don't require availability zone when creating volumes in cinder