Refactor reponimous

Reponimous needed a setup.py and needed to be refactored to start to
support breaking this down into sensible modules.