Add Python 3 support.

This commit combines the output of the following:
    lib2to3.fixes.fix_except
    lib2to3.fixes.fix_idioms
    lib2to3.fixes.fix_import
    lib2to3.fixes.fix_ws_comma
    lib2to3.fixes.fix_xrange
    libmodernize.fixes.fix_dict
    Replace filter with list comprehension.
    Wrap map() in list/tuple, it's an iterator in Py3.
    libmodernize.fixes.fix_metaclass
    libmodernize.fixes.fix_next
    libmodernize.fixes.fix_raise
    Update imports using six.moves.
    raw_input
    Fix urllib
    Fix print handling (brackets, __future__).
    Fix unicode handling (remove u'', smart_str/text).
    Python 3 string related fixes.
    Update model string methods for Python 3.
Remove requirement for Python GDAL and memcached.

Add Python 3 testing to Travis.