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.

Other librets calls will still attempt to decode as UTF-8. I'm undecided
about this, but don't think it's worth changing now. ASCII text is common
in the RETS protocol so this approach seems sensible for the time being.
If it turns out to be problematic, the SWIG bindings can be adjusted so
that only byte strings are returned in Python 3 and all decoding will be
up to the user.
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.