Initial work to support Python 3.3+

This updates most of the code to be forward-compatible with Python 3.3 and
3.4 while still continuing to support 2.6 and 2.7. It **drops** support for
Python 2.5.

Python 3 support is added for common Boto modules (`boto/*.py`) as well as
S3, SQS, Kinesis and CloudTrail. Several other modules may work but have
not been thoroughly tested.

The `tox` configuration has been updated to run tests for all supported
environments, and for now a whitelist is used for Python 3 unit tests.

A new porting guide is included to help community members port other
modules to Python 3, and both the README and Sphinx index list which
modules currently support Python 3.
Explicitly set hash seed for Travis
Add porting guide to docs [ci skip]
Use next() over six.advance_iterator.

We don't support Python 2.5, 3.0, 3.1, 3.2 so we don't need to use
`six` for these. The code is a bit cleaner with `next()`.
Remove duplicated imports
Add note about dangling resources
Fix Py3 test arg handling
Add info to generate coverage
Be consistent about relative imports
Move import below copyright
Move StandardError logic to boto/compat.py
Remove bare exception
Remove unnecessary print_function imports
Remove test dependency on env var
Add a note about why we use a separate whitelist for py3 tests
Rebase upstream and fix tests
Fixes for bytes encoding/decoding
Merge branch 'develop' into py2and3
Fix failing tests from develop merge
Make whitelist immutable, chdir for default tests