Make most of exception handling Python 3 compatible

except Exception, e:

has been converted to

except Exception:
  import sys
  e = sys.exc_info()[1]

Which should be compatible with both Python 2.5 & 3
Fix some import errors and more exception handling
More exceptions, also remove sys import where not needed
Fix StringIO import
We might need StringIO rather than cStringIO
Fix urllib compatibility
Update Urllib3
Update urllib3
Add the collections module from Python 2.7
Python 2.5 compatibility
Use Urllib3 for automatic tile download

As Urllib3 uses a connection pool with connection reuse, automatic tile download should now be more efficient and maybe even faster. :)
Update mapData to work with updated Urllib3 API
Add Python 2.5 compatible namedtuple implementation
move the argparse module to the backports directory
Remove the old Urllib3 modules
Add the six compatibility module
*.pyc cleanup
Use six to make iteritems works on both Python 2.5 and 3
Python 3 compatible print
Python 3 compatible exceptions & exec