First commit. This brings the project to the status where I last left off. The structure of the project has been greatly improved to ease future editing, however.