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`. 
Is this the only part of this PR that is needed to solve your issue?