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__`