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 warning when calling EncryptionUtils.encrypt with data longer than keylength
Cleaned up encryption keys in the tests so there are no warning when running tests
AWS.eager_autoload! now autolaods all of AWS::Core.

Fixes #279
Removed the need to specify modules by crawling all constants when eager autoloading.
Change HTTP handler to whitelist network errors

Instead of (dangerously) whitelisting errors to reraise, this changes
the HTTP handler to explicitly list the raised exceptions for which the
exceptions should be swallowed.

Fundamentally, this changes handling of unknown errors (such as any Java
error in JRuby) to not be swallowed.
Remove Request#proxy_uri references from CurbHandler. #proxy_uri is no longer defined on Request
Curb Performance: Use an array of strings instead of a StringIO object.
Fixes LoadError. Properly load AWS config.
Adds simple example to list SQS queues.
Capture OpenSSL errors, to allow retry for those as well
Merge pull request #285 from bpot/bp/perf_improvment_for_curb_handler

Curb Performance: Use an array of strings instead of a StringIO object.
Merge pull request #287 from ktzhu/master

LoadError for config in `sqs/add_queue_message.rb`
Resolved an issue with AWS::IAM::VirtualMFADevice#enable.

Passing in string values for a code like '099999' were raising
runtime errors from sprintf.  This change prevents string values
from getting passed through sprintf.  Added a test to cover this
behavior.

Fixes #288
Merge pull request #284 from bpot/bp/remove_proxy_uri_from_curb_handler

Remove Request#proxy_uri references from CurbHandler.
Merge pull request #282 from grddev/networking_errors

Change HTTP handler to whitelist network errors