If an error occurs, parse the body of a streaming response.

This fixes #188 and aws/aws-cli#668
remove unused import
support Python3.3
Update S3 model to use shapes

This allows us to add handlers to response parsing.
Merge branch 's3-shapes' into develop

* s3-shapes:
  Update S3 model to use shapes
- log response header/body for streaming responses
Make xml parse error more user friendly
Update ec2 docs for user data and base64 encoding

Looks like we customize our model to be a blob type, but we
never updated the docs.  This has led to customer confusion.

Fixes #366
Merge pull request #254 from quiver/fix-parse-streaming-error-response

If an error occurs, parse the body of a streaming response. Fixes #254, #188.
Add unquote_str to compat module

This gives us a single consistent interface that allows us to
urldecode and string and decode it to unicode in a single function.
Merge branch 'ec2-user-data' into develop

* ec2-user-data:
  Update ec2 docs for user data and base64 encoding
Fix py2 failure in unquote_str
Merge branch 'unquote_str' into develop

* unquote_str:
  Fix py2 failure in unquote_str
  Add unquote_str to compat module
Ignore .DS_Store as well.
Started to shuffle the deck chairs to start supporting multiple versions of services.
Updated the ``buildall`` script to write to the new proper filepath.
Added older, incompatible versions of services.
PARTIAL: Started integrating versions.
More work on adding loader/multiple version support.

Mostly working, but fails for loading all services (``aws``) & for paths (which we should remove in favor of plain old dicts).
PARTIAL: Started revising how loaders work.