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.
nose already has a concept of tagging tests and running tests based on a tag.  If you look below you can see where we're by default not running tests tagged 'notdefault' (the `-a` attribute).

Let's reuse this concept instead of creating our own.  If we're on python3, also add a condition to not run test tagged as not ready for python3, or we can make it an opt in tag as you have it here.  But let's use nose test tagging for this.