Reorganize the repository

and add a `setup.py` such that you can do either `python setup.py install` or `python setup.py develop`