Return the x-amz-restore header with GET KEY and fix provider prefix.

Currently x-amz-restore is only supported by HEAD KEY but GET KEY also
returns the header when it has been successfully restored and the
restored key is awaiting expiry. Fixed the provider 'x-amz-' prefix
part so that it's consistent with other standard headers. Previously,
it was hardcoded.

This patch is hard to automate a test for as transitioning to GLACIER
and restoring back from GLACIER both take time. This change has been
manually tested.
Make the Lifecycle Id optional and fix prefix=None in XML generation.

The id is optional in the AWS PUT Lifecycle API. Boto currently
always sets the Id to 'None' if you set the rule directly.
Fix the XML generation to not send the Id if id is None.

If prefix is not set on a Rule, Boto generates a prefix for the
string 'None' which is not a good default value. Instead
generate the empty string for the prefix if not given so that
it matches all Objects in the bucket.

Modified the add_rule() API to allow the id to be optional which
also forced making other parameters optional by specifying
defaults. This makes adding simple rules easier though and is
backwards compatible.

Added 2 test cases to test the changes.
Merge pull request #1990 from tpodowd/restore_header

Return the x-amz-restore header with GET KEY and fix provider prefix. Fixes #1990.
Merge pull request #2021 from tpodowd/lifecycle_prefix_and_id

Make the Lifecycle Id optional and fix prefix=None in XML generation. Fixes #2021.
CLOUDIAN: Add GMTUsage class to track x-gmt-usage header data
CLOUDIAN: Added Cloudian Virtual Bucket Support
CLOUDIAN: Add Cloudian group canned acl names.
CLOUDIAN: Validate the meta parameter for Cloudian usage.

The meta parameter is used to list meta data when listing
objects in the bucket.
Add policy parameter support to copy_key().

- Similar to other API which add a key or a bucket to the S3 server,
  Allow the user to override the default canned-acl which is applied
  to the new key. This default policy override is only used if the
  preserve_acl parameter is False.
Add missing delete_subresource() method to bucket.

There is a set_subresource() and a get_subresource() but
there was no delete_subresource(). Implement a simple
delete_subresource().
CLOUDIAN: HyperStore configuration and header support

Add the HSConfiguration class for working with XML for HSConfiguration
and return the x-gmt-hyperstore header.