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.
Add randomisation example
Associated learning basic functionality

If a question is answered incorrectly and it contains references to
another part of the course, the title for this can be displayed in the
results. A results component will follow.

Makes use of a new method added to
https://github.com/cgkineo/adapt_framework/tree/feature/associatedLearning
to find a model by its ID.
Merge branch 'feature/randomisation' into feature/randomisation-port
Fix feedback
Refactor assessment code
Add merged files
Working versing of question blocks randomisation and question banks
Commit merge conflict