Initial cleanup and docs

Update the setup.py to install the requirements.  Also, epsilon was required in the setup.py - use setuptools instead.