Add Python 3 SWIG bindings, inspired by the Python 2 version

By default, the SWIG wrapper code encodes all str inputs as UTF-8 and
attempts to decode byte string outputs in a similar way. This will raise
a UnicodeDecodeError if the data can't be decoded, though.
librets.i: expose GetData for Python

The default behavior of decoding bytes to a UTF-8 str (and raising a
UnicodeDecodeError if the decoding fails) is not applicable when downloading
pixel data or any text that's encoded in something besides UTF-8. Provide
a method (as in Java and C#) to get a bytes object without attempting
to decode it as a str.

I'm undecided about changing the default decoding behavior; ASCII text is
common in the RETS protocol so this may be a sensible approach.
Py3 example code: close to PEP8 compliant

Also use some newer Python idioms: string formatting instead of string
concatenation, and argparse instead of manual inspection of sys.argv.

These changes are acceptable because backward compatibility isn't really
an issue for the Python 3 bindings.