Better organization of docs.
Add API reference docs.
Add docstrings to start of each module.
Flake8 cleanup.