make sure setDirty(false) is called on init; restoreAnswer on end

setDirty is called as part of Numbas.display.init, which means that
1) the code responsible for the problem takes care of the problem
2) even resuming from SCORM can't mess it up

restoreAnswer now runs on steps and gaps as well, when the exam is ended.