integrate ruby autogeneration more cleanly into build / revision control

The current setup involves a ruby script which clobbers mainwindow.cpp.

This PR splits out the autogenerated stuff into its own file alongside that, and hooks the ruby autogenerator into the bootstrap script.

Motivations: 

1) conventional "git status", "git diff" and "git add" workflows are slightly disrupted by mingling normal C++ and autogenerated stuff in the same file
2) I want to autogenerate material using Qt's resource system, rather than embedding the strings in C++