Single Python 2 and 3 compatible codebase

Refactor the codebase to be both Python 2 and 3 compatable. Main changes include:

- Absolute imports with leading `.`.

- Python 3 print function rather than print statement.

- String in Python 3 are always unicode, so unicode related functions have been removed. This is particularly troubling with Python 3.2, which does not support `u''` for creating unicode strings.

- Integers in Python 3 are always "long", `long` methods and suffixing long numbers with `L` are not supported

- `map`, `filter`, and `range` return iterables rather than lists, where   needed, wrap these calls in `list()`. As such, the Python 2 iterable forms of these, such as `xrange` and `ifilter`, have been removed.

- `exec` is a function rather than a statement.

- Iterators in Python 3 do not have `.next()` methods. Instead, `next()` can be used for all Python versions currently supported.

Changes related to Python 2 and 3 compatibility are in sympy.core.compatibility.

### Current status

This should give a fully functioning version of SymPy for Python 2 and 3, passing tests for both and doctests for 3 (the printing doctests in 2 won't pass). I haven't checked all the scripts, but `bin/isympy` gives a working IPython terminal with SymPy loaded.

### TODO
* [x] Fix doctests for Python 2 (maybe use something similar to wrappers implemented for IPython?) (Fixed, but kind of messy, see cc2e3f04e2b571c113f010e4d03aacc9a44dee6b)
* [x] Have setup.py install `isympy3`
* [x] Fix some broken tests (new lie algebra module, combinatorics.permutations)
* [x] Doctest viewer Python 3 compatible (L1255 sympy/utilities/runtests.py)
* [x] Remove references to use2to3 (documentation, etc)
* [x] Add `print_function` import to files
* [ ] Check that all files not directly tested with tests/doctests are Python 3 compatible (TEST TEST TEST)

### Other things to do
* Update release (Ondrej)
* Update bot (remove use2to3) sympy/sympy-bot#166