Add Models, API, inital migrations, tests, fabfile

Code in this branch is now squashed into one commit, 100% covered by tests, and flake8 compliant. Still needs docs, especially docstrings on methods, but that can be added in a future PR.