optional 'host' parameter to use any S3-compatible host

Allows Net::Amazon::S3 to be used with any S3-compatible host by
setting the 'host' parameter when creating the Net::Amazon::S3
object. This allows you to override the default of 's3.amazonaws.com'.

Example:
my $s3 = Net::Amazon::S3->new({
	aws_access_key_id     => $aws_access_key_id,
	aws_secret_access_key => $aws_secret_access_key,
	retry                 => 1,
	host                  => 'my.s3.compatible.host.com',
});
allow for more easy subclassing of ::Client
Support Content-Disposition in put_filename
Document content_disposition attribute
Consistent error reporting for put and put_filename
Factor out shared guts of put and put_filename

This should prevent future bugs like that affecting the content_disposition
option.
Support reduced-redundancy storage
Support uploading and downloading user metadata
Support decoding Content-Encoding on GET
Add support for multiple delete call at S3.

API allows deletion of 1,000 keys per call, which is very fast compared
to deleting one key per call.
fix synopsis for s3cl sync_up
Allow 'value' property to be ScalarRef
- adding support for multipart upload aborting

Signed-off-by: Gabriel Andrade <gabriel@zumba.home>
Support server side encryption
Modify a test to use AES256 encryption
Indent changes
Add documentation for server-side encryption
Added support for cache-control header
Updated the client test to use README.md instead of README for a test file
Added a test case demonstrating how listing a bucket fails when trying to list a multipart-uploaded file