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.
I'm going to be keeping this as-is after in-person discussion. Using the existing mechanism of attribute tagging would require all tests and all boto modules to be importable by Python 3, which currently is not true. For now the whitelist lets us manage a list without requiring such imports, and as more modules get Python 3 support we can revisit this to move to proper tags or just remove any special handling of Python 3 altogether.