Generalize survey question creation

This abstracts the process of creating survey questions. Instead of directly writing HTML, you make a Question (either a Fixed, Scale, or Essay Question) and pass in a bunch of parameters. The survey-gen.js classes then do all of the work of setting up DOM nodes.

This implements a basic Fixed question. Scale and Essay questions are still TODO, but the groundwork is here.
haha no it should follow the style guide. i am just sad about the style guide