Restructure the application

This introduces the application factory pattern to the project. There is
still a long way to go for this, but it's a decent start. Sadly this
restructuring loses the history of work that has already been done. To
remedy part of this, an authors file is being added to thank everyone
who has contributed to this project.