More work on resource definition validation.
Resolved an issue with empty body errors from Aws::S3.

Now prefixing the error class name with "Http" to prevent
ruby from raising an error about invalid constant.

Fixes #66
Merge branch 'master' into normalized-resources
Added additional context into a validation error.
Fixed a testing order bug.
Resolved an issue where the target IO was not rewound for streaming operations.

Given the following:

    s3 = Aws::S3.new
    s3.put_object(bucket:'name', key:'key', body:'hello')

The following code would always return an empty string,
until you called `#rewind`:

    resp = s3.get_object(bucket:'name', key:'key')
    resp.body.read
    #=> ''

    resp.body.rewind
    resp.body.read
    #=> 'hello'

This commit patches the http handler to rewind the http response
body IO object before returning. Now the following works:

    resp = s3.get_object(bucket:'name', key:'key')
    resp.body.read
    #=> 'hello'

Added an integration test to prevent regression.

Fixes #67
Merge branch 'master' into normalized-resources

Conflicts:
	spec/aws/operations_spec.rb
Now serializing empty lists for the query protocol.

Fixes #49
Extended the duration to wait for a particular integration test.

The test to ensure a bucket is deleted was periodically timing
out.  Extended the number of seconds to wait for the
bucket to no longer exist.
Merge branch 'master' into normalized-resources

Conflicts:
	lib/aws/query/builder.rb
	spec/aws/query/builder_spec.rb
Removed a duplicate class file.
Fixed a thread-safety bug with the OperationMethods plugin.

The plugin hooks into the after initialize hook of the client
class. It conditionally defines operation methods for each operation
defined in the API model if the client class does not already respond
to the `#operation_names` method.

The plugin defines these methods behind a class mutex, but incorrectly
defines the checked method first, instead of last, before releasing
the mutex.

Simply moving the method definition of `#operation_names` to the last
line before releasing the mutex solves this problem.  Also, adding
a double check inside the mutex ensures the methods aren't defined
multiple times.

See #64
Replaced usage of Digest with OpenSSL::Digest.

The Digest class has some thread safety issues.

See aws/aws-sdk-ruby#455
See aws/aws-sdk-ruby#529
Merge branch 'master' into normalized-resources

Conflicts:
	vendor/seahorse/lib/seahorse/client/plugins/operation_methods.rb
Replaced the resource definition validator.
Resource validator now passes all of its tests.
Minor bugfix for operation names plugin.