Add backward-compatible support for Python 3.3+

This pull request adds backward-compatible support for :snake:**Python 3**, specifically versions 3.3 and 3.4. It **drops support** for Python 2.5, but continues to work with 2.6 and 2.7. Not all modules work with Python 3 - currently supported are S3, SQS, Kinesis and CloudTrail.

* Modernized most of the codebase to use Python 3 compatible exception handling, iterator handling, etc.
* Vendored the `six` library to help with porting
* Updated the `boto.compat` module to help keep code clean similar to [Botocore](https://github.com/boto/botocore/blob/develop/botocore/compat.py)
* Added a [porting guide](https://github.com/danielgtaylor/boto/blob/py2and3/docs/source/porting_guide.rst) to help community members port modules to Python 3
* Update dev dependency versions, add `coverage` to default requirements
* Got unit and integration tests passing using a whitelist for Python 3 (see `tests/test.py` and the new `default` target)
* Fixed a few integration tests that were failing on Python 2.6.x
* Updated `tox` config to run against Python 3.3 and 3.4
* Updated Travis CI to run tests for Python 3.3 and 3.4 ([example](https://travis-ci.org/danielgtaylor/boto/builds/28272351))
* Updated README and Sphinx docs about Python 3

Please take a look @jamesls, @garnaat, @toastdriven.
fwiw I think this is slightly confusing because "default" doesn't imply only unit tests.  It might be helpful to make it clear that we're only running the unit tests for this.  Maybe there's a better name that "default" to make this clear.

Presumably we'd want the integ tests passing (if there are any) for a module before saying that module supports py3.