Proper documentation

First pass at providing Sphinx style documentation that is consistent with the rest of the project.