Initial commit.

Code has been tested and is functional, but the output is largely unformatted and the code is uncommented and disorganized.  It will be cleaned up later.