Add proper test_response and hint to Question
Remove old boilerplate from MultipleChoice
Refactor MultipleChoice question

It now handles errors more cleanly, and shuffles options between valid
answers.