Setup.py cleanups

Various cleanups, and a fix that lets us use setuptools.