CLN/ENH/BLD: Remove need for 2to3 for Python 3.
Fixes #4375 and #4372.

Many changes to make codebase compatible in 2 and 3. For `range`, `zip`, `map`, etc. tried to favor iterators over needing to use lists.

Changes:
- No more 2to3 in setup.py
- merges util/compat and util/py3compat into pandas/compat
- incorporates useful parts of the six library into compat (+ adds SIX to LICENSES)
- defaults to using iterators in both Python 2 and Python 3 for range, zip, map, and filter
- Adds lrange, lzip, lmap, and lfilter, which wrap corresponding iterator methods with lists
- Improved type checks (where appropriate --> many need to be rigid to work with pandas)
- various other utilities to be Py2/3 compatible (iteritems, iterkeys, itervalues, etc.)
- deprecates iterkv with a warning (no longer necessary because library no longer uses 2to3)
- compatibility wrapper around `dateutil` for handling unicode when version <= 2.0 + 1.5 dateutil build in Travis

Switches everything to use special iteritems, so can deprecate as discussed in #4372.

This iteritems use "iteritems" method if available and otherwise uses items.

Checklist of packages to run through 2to3 to check:
- [x] compat
- [x] core
- [x] io
- [x] rpy
- [x] sandbox
- [x] sparse
- [x] src (python files only)
- [x] stats
- [x] tests
- [x] tools
- [x] tseries
- [x] util

Other tasks:
- [x] alias `__bool__` to `__nonzero__`
