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.

- 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 (Python >=2.6).

Changes related to Python 2 and 3 compatibility are in
sympy.core.compatibility.
Remove use2to3
Update Travis configuration for Python 3 codebase
Fix isympy for use with Python 3
arit test fix
liealgebra test fix
vandermode example fixes
Fix Python 3 doctest runner
doctest fix
Merge branch 'master' into single_code_base

Conflicts:
	sympy/solvers/ode.py
doctest fix
Update doctest print function to pass in Python 2
Merge branch 'master' into single_code_base

Conflicts:
	sympy/liealgebras/cartan_type.py
Port sympy/liealgebras/type_b.py
Add comment on Python 2/3 compatibility fixes
Implement u_decode in compatibility, change from PY2 to PY3
Remove filter and callable from compatibility file
Remove use2to3 references in docs
Remove cmp() from compatibility
Make setup/setupegg install isympy to isympy3