Add Python 3 support

Fixes #25.

I haven't tested this fully, so you should probably do a full run through to make sure everything works. I mainly ran `2to3`, did a conditional import on `winreg`, and made the `subprocess` functions return strings instead of bytes with `universal_newlines=True`. 
Without this change, emacs complains when opening the file, because `utf8` is not a real coding (`utf-8` is).