only setDirty on MCQ parts when answer has changed

Because of an unfathomable knockout dependency chain, p.storeAnswer is called when submitting an MCQ part. This was marking the part as dirty, which it isn't because the part's just been submitted.
I can't work out how to get the knockout dependencies sorted, so instead p.storeAnswer for a MultipleResponsePart now only does setDirty(true) if the stagedAnswer has changed.