Begin work on setup.py

We will want to support setuptools.
Flushed out more of setup.py