Reset observableArrays before loading

Working towards making the load() method able to load potentially-completely-different question data while the question is running.
Starting on edit history in question edit

The question edit page keeps track of changes made since the page was opened. You can move back and forward through the versions with the arrows in the top-right.
A version is a complete dump of the question. Restoring a version involves resetting the question entirely and loading in the data as if it's new.
This would be much nicer if it only made the changes necessary to get to the desired version, so knockout could keep as many of the DOM elements as possible, and the viewModel can keep unchanged objects.
use JSON patches to represent question changes

JSON patches should be more efficient as a way of representing changes, instead of storing the whole JSON object for each version.

Question versions now work as a linked list (in javascript), so navigating back or forward one change is easy, but switching to an arbitrary version is hard.

This is all still happening only in javascript - need to add some models to the database to keep changes between page loads.
use django-reversion to track changes in database

django-reversion keeps track of question versions. There's now an "editing history" tab on the question editing page, which has a list of versions saved in the database (generated at page load). Clicking on a version reverts the question to that version.
don't say "by X" for a revision when it has no user
version tracking for exams
versions stored in JS; can add comments

Versions are now part of the knockout viewModel, so a new item is added to the list every time a save is made.
You can edit the comments on versions as well, so you can mark significant points in development.
add "only show versions with comments" toggle
"only show versions with comments" is true by default
"Click on a revision" -> "click on a version"
Merge branch 'versions'