Add AWS::SNS::Message and build-in authenticity-checking.

AWS::SNS::Message#authentic? will return true if the message is cryptographically authenticated
(see http://docs.amazonwebservices.com/sns/latest/gsg/SendMessageToHttp.verify.signature.html).
To-do:
* support subscription-confirmation and unsubscribe messages; this just supports
notifications.  Should just mean changes to canonical_string method.
* decide whether it's really OK to return false in the event of the check throwing an error (for
example, if the cert-download fails too often or times out).  Might be best to leave that up to
the caller?
Add support for Message finding out its own origin.

Introduce the concept of a message's origin, and introduce a partial implementation of
an AutoScaling originator (partial, in that there's not coverage for all of the data that
auto-scaling will include in the SNS' body).

The origin-selection currently works simply; there's only one originator at present, so
it's checked in-line in Message's initializer, rather than that iterating through the
available originator modules.
Merge branch 'master' into SNSMessageHandling
revert to ruby 1.8.x hash-syntax

(CI runs tests using ree-1.8.7)
Merge branch 'master' into SNSMessageHandling

* master: (159 commits)
  Fixed an issue with the stubbed responses for S3::Client#complete_multipart_upload.
  Fix undefined method 'version_id' during multipart upload
  Fix bug: default credential provider hides sub credential provider's fetching credentials error.
  missing require time lib for Time.parse is used in EC2Provider, the test passed because there is an example required the time lib
  Bump version to 1.8.1.1
  Removed REE from travis configuration, currently broken on travis-ci.org.
  Removed HTTParty from gem specification.
  Bump version to 1.8.1
  Removed gem dependency on HTTParty.
  Added support for Elastic Transcoding errors and some integration tests.
  Added a basic Elastic Transcoder client.
  Fixed documentation for AWS::CloudFront (incorrect example).
  Fixed "configuraiton" mispelling everywhere
  Spec for allowing workflow_id parameters to some decider methods
  Allow signal_external_workflow_execution and request_cancel_external_workflow_execution to accept a String workflow id as the first parameter. This is consistent with the current documentation.
  Removed @private doc tag from AWS::IAM::Resource.
  Added #create and #create! methods to AWS::Record::AbstractBase
  Removing deprecated usage of nested Given/When/Then from features.
  Removed a few un-needed test dependencies and updated others.
  Fixed spec broken by NetHttpHandler update for network errors.
  ...
Added support for copy on multipart_upload

as per
http://docs.aws.amazon.com/AmazonS3/latest/API/mpUploadUploadPartCopy.ht
ml, this adds an explicit api on the multipart_upload object
(copy_part) as well as auto-detection and handling of file > 5GB for
copy method on an s3_object
Adjustments as per feedback from AWS developer
forgot to remove debug statement
Added support for sending "expect" and waiting for 100-continue.

Added two new configuration options to AWS.config:

* :http_continue_timeout (time in seconds, defaults to 1)
* :http_continue_threshold (size in bytes, defaults false)

If a request body exceeds the :http_continue_threshold, then the
"Expect" header will be set to "100-continue".  The http client will
then wait for a "100 Continue" response or :http_continue_timeout
seconds before sending the body.

By default the :http_continue_timeout is set to 1 seconds and the
:http_continue_threshold is disabled (set to false).

To enable 100-continues you need to do 2 things:

* Call `AWS.patch_net_http_100_continue!`
* Set `:http_continue_threshold` to a positive integer (number of bytes)

References #172
Merge pull request #228 from aws/http-continue

Support the "Expect" header and "100-continue" responses
Improved retry logic for throttling errors and expired credentials.

* Added additional error types to the list of throttling errors.
* Added invalid credential errors to those that need to be
  retried as expired creds

When account credentials are rotated they (the old/invalid) credentials
return a different error than when session credentials expire.  Now
catching invalid account credential errors and retrying them once
(after asking the credential provider to refresh).
Added AWS::EC2::NetworkInterface#private_ip_addresses.

Resolves #230
Updated some documentation in AWS::DataPipeline::Client.
Added support for AWS Direct Connect (2012-10-25).
Simplified the connection pool and addressed a few issues.

The default http handler (AWS::Core::Http::NetHttpHandler) used
internally a Net::Http::ConnectionPool class.  This was refactored
(and renamed to AWS::Core::Http::ConnectionPool).

* ConnectionPool.new will now return a previously build (shared)
  pool for the same options.

* ConnectionPool.new now tracks all pools, and you can get a list
  of them from ConnectionPool.pools.

* Moved Net::HTTP patch into aws/core/http/patch (this fixes
  100-continue bug in 1.9.3 and 2.0.0)

As part of this refactor a handful of configuration options were
removed from AWS::Core::Http::Request (e.g. ssl_ca_file, proxy_uri,
etc).  These attributes are now passed to the ConnectionPool
constructor instead and not tracked on each http request.
Fixed namespace bug in http patch (after move).
Loosened expired credential error matching to catch both ExpiredToken and RequestExpired.
Added a second client to AWS::DyanmoDB to support the new API version.
Bump version to 1.9.0
Switched from yard @private tags to @api private tags.