Use key instead of cmp, for py3 compatibility

The cmp arg to sort was removed in python3.
Merge branch 'issue33' into develop

* issue33:
  Use key instead of cmp, for py3 compatibility
Fixing IAM Roles for S3.  Fixes #34.
Merge branch 'develop' of github.com:boto/botocore into develop
Add test for using the "extra" dict in translate.py
Rewrite XmlResponse to use cElementTree rather than the SAX parser.  Added lots of new tests for response parsing and a framework to add more.
Merge branch 'develop' of github.com:boto/botocore into develop
Fixing some Python 3.x issues with last commit.
Remove use of abspath for nose generator.
Merge branch 'hotfix-0.8.3' into develop
Reworking the parser to speed it up. Also adding lots of unit tests for the response parsing.
Sending data=None to requests causes a Content-Encoding: chunked to be added to the request.  Don't do that.  Fixes #35.
Support pagination for multiple input tokens

This allows multiple input tokens to be added to the
subsequent pagination requests (needed for some of the S3
operations).

To support the previous behavior where multiple output tokens
were checked until one matched, jmespath was updated
to accept "or" expressions.  This now allows "first non None"
semantics that multiple output tokens previously had.

Now multiple output tokens map, in order, to multiple input
tokens (so len(input_tokens) == len(output_tokens)).

* Handle multi in/out token in pagination configs
* Suppose jmespath expressions for more_tokens
* Add s3 integration test for pagination
* Add http_responses property
Update jmespath to 0.0.2
Add full_config property to session object

Also minor cleanup to the session unittests:

* Use self.assert* assertion methods for better error messages
* Patch out os.environ to avoid leaking global state between tests.
* Use tempfile for checking log file
Add result_key to services

This included adding extra validation for pagination configs:

* must have 'result_key' defined
* 'result_key' must point to an output member of the operation

Also regen models with the latest pagination config.
Bug fix for s3 with empty responses

Also updated the tests as ListBucketResult is now stripped
from the response.
Open tempfile in write mode only
Merge branch 'merge-key-pagination' into develop

* merge-key-pagination:
  Open tempfile in write mode only
  Bug fix for s3 with empty responses
  Add result_key to services
  Add full_config property to session object
  Update jmespath to 0.0.2
  Support pagination for multiple input tokens
Bump jmespath in requirements.txt to 0.0.2