MDL-24408 extra_answer_fields : get answers even if they miss extra data

Extra answer data may be optional, saving DB space - i.e. not every row in
question_answers will have respective row in extra answers table. Current
implementation of question_type::get_question_options() won't return such
answers at all. This commit fix that, changing join type for db query.

Also fixed coding style violation in the variable name in get_question_options.
MDL-24408 extra_answer_fields: loading data to the question editing form

Now question_edit_form can load extra answer fields. If a question
type need to do something more complex for particular field, it
can overload added functions without duplicating other code.
MDL-24408 extra_answer_fields: save_question_answers function

question_type::save_question_answers function added, supporting
saving answers and extra answer fields. It can be called from
save_question_options function for the questions, using
question_answers table. Special functions created for overloading
so that every question could tune it to it's own form.

Shortanswer qtype save_question_options() converted as a proof of
concept and for testing purposes.
MDL-24408 extra_question_fields: separate answer data creation code

Now any question using extra_question_fields can overload make_answer
(just as make_hint), instead of overloading whole initialise_question_answers.