basic frontend working.

Lots of issues to work out though, including:
- what to do if there is no data for a class.
- displaying freeform answers, and "other" responses
- multi-semester UI
- randomizing order of freeform / others, for anonymity.
- rendering issues
  - 10+ answers choices = don't display them all)
  - answer labels off a few pixels
removed answerless surveys from the summarized data
sorting the class list dropdown
fixed issue where the tech electives hacks surveys would be treated as empty.
added data shuffling to the backend for improved anonymization
forcing vertical scale to be integral
fixed stepsize bug
hotfixing chart.js to work properly with custom y-axis labels
another chart.js hotfix - this time, for label positioning
adding course titles to the dropdown menus
multi-semester support
various graphing improvements, better others support, etc.