Make travis pre run script more resilient

Also bump the default url to 1.8.9
[PY3] Replace use of iteritems() with items().

Python 2 and 3 both support items(), iteritems has been removed from 3
(it always returns an iterator in 3).
[PY3] Use six to select urllib import.

Adds the six.py compatibility layer for seamless Python 2/3 use of
urllib2/urllib.

Also fixes a bug (only in Python 3) caused by the fact that local
variables in things like try blocks, loops and list comprehensions are
not visible outside that scope.
[PY3] Make compression Python 2/3 compatible.
[PY3] Added wrapper for Python 2/3 test compat.
[PY3] Made compression in test_api 2/3 compatible.
[PY3] Removed extra string conversion in sqlite cache.
[PY3] Use six for easy version info.
[PY3] Fixed tests that relied on dict order.

In tests that compare requests w/parameters, parse the parameters into a
dictionary and compare the dictionaries instead of the parameter strings
generated from them.
[PY3] Added Python 3.2 and 3.3 to travis.yml.
[PY3] Split requirements.txt for py2/3.
[PY3] Made Travis files Python 2/3 compatible.