Drop 2to3, common codebase for Python 2 and 3

This moves IPython to a common codebase supporting Python 2.7 and Python 3.3+. The test suite, including IPython.parallel, is passing on both versions, and I've briefly tested running the terminal interface, terminal zmq console, Qt console and notebook. It will be important to merge this soon so that people using master have as much time as possible to find corner cases.

We still need to work out what we're doing about `six`. It's currently imported as an external module. It would be a fairly natural candidate for bundling into `IPython.externals`, or we could copy relevant functionality to `py3compat`, where we probably already duplicate some things.