Add all the files for this project.

I did most of this work outside of git. This is really the first major
commit and major update to this. Sorry for the lack of history.