change the way question HTML is bound

Turns out that knockout's 'with' binding re-clones the child nodes every time its observable is updated, which knacks canvas elements.
This introduces a new binding, 'stopbinding', which does what it says on its children.
Question HTML is now bound separately, to an object of the form {exam: Numbas.exam, question: Question object}, so the 'with' binding can use a constant instead of an observable.
Merge branch 'master' into preamble