MDL-35325 add unit tests for adaptive vulnerability
MDL-35325 allow qbehavior to control qtype feedback

Prior to this commit, the core question renderer directly included
question-type feedback; without passing through the relevant question
behaviour class. As a result, the question behaviour had no say in
what feedback was provided, and at least one behaviour (adaptive)
incorrectly displayed feedback for the most recent step, whether it
had been graded or merely saved.

To fix this error, this commit introduces the following new methods
to the qbehaviour_renderer API:

* qtype_feedback, which is used to determine the question type
  feedback appropriate for the current question attempt and behaviour.

The default implementation of qtype_feedback, provided in
qbehaviour_renderer, should be appropriate for most cases-- so
question behaviours unaffected by the bug above will not require
modification.

From this commit forwards, the core_question_renderer will use this
new API function, rather than calling the qtype renderer's feedback
method directly; allowing the qbehaviour control over any relevant
changes.