Change event listener name to more obvious handler
Cache questionComponents

This avoids multiple uses of the quite expensive
getQuestionComponents method.
Cache model's assessment attribute

Mostly for convenience, but this way we don't have lots of
get requests to the model, just the one.
Add randomisation functionality

Reads from _randomisation object in article's json
Respond to pre, not post, render

Otherwise you are shuffling blocks around too late. Nothing
already in the code requires dom elements so change shouldn't
affect existing behaviour.