CLN: Newer syntax, unicode, iterator range, zip, etc

Use new syntax ('except as', print as function, new raise syntax, next
function rather than method, next and __next__ defined throughout,
switchout xrange, etc.)

Now range is always equivalent to 2.X xrange throughout (but need to
import range from py3compat to use it). Also remove range fixer from
setup.py. + compatible long and string types, etc.
TST/ENH: Add assert_isinstance util to util/testing + better type checking

cleanup instance checks in pandas/tests, add assert_isinstance method

CLN: assert_(isinstance --> assert_isinstace

Make is_instance_factory cleaner + basestring --> (str, bytes)

use list(range in pytables tests

make _WINDOW_TYPES update 2/3 compatible
CLN/ENH: Refactor url methods to be Py2/3 compatible
CLN: Py2/3-compatible dict keys/items/values.

+ many other fixups
CLN/ENH: Add list versions of iterator methods.

py3compat now has lrange, lzip, lmap, lreduce and lfilter, which work
like the python builtins and produce lists (to make it more clear where
looking for iterators vs. containers).
CLN: Add __bool__ alias for __nonzero__

Python3 uses __bool__, not __nonzero__
CLN/ENH: Merge compat with py3compat and six

For simplicity, move the relevant portions of six into
compat and combine py3compat and compat together (given the distinctions
were relatively arbitrary already). Also switch to importing u to make
things cleaner.
DOC/ENH: Deprecate iterkv + add docs
CLN: pandas.util.compat --> pandas.compat
CLN: Add unicode compatibility wrapper for dateutil.

Dateutil < 2.0 doesn't always handle unicode well. This wraps
`dateutil.parser.parse` and converts unicode to bytes.

+wrap get_filepath_or_buffer in `str`
TST: Make 2.6 require dateutil==1.5 in Travis
Merge pull request #4384 from jtratner/better-python3-compat

CLN/ENH/BLD: Remove need for 2to3 for Python 3.