Windows compat

I pulled in Hashcode's changes since they weren't yet in the main repo and made my additional changes to the setup.py