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