First real commit (after a month of work).

This has most of the functionality, although not in a state to be useful. See README.