question: Question.check() now returns (correct, details)
When the answer is correct, details will be None. When the answer is
incorrect, details may be None or an explanatory message that provides
details about why the answer is incorrect. This is mostly useful for
`ScriptQuestion`s, where the difference between the answered and
expected output streams may help diagnose errors.
The details are returned as a string (instead of, for example, logging
them in invocation_difference) so they will be easy to display in user
interfaces that aren't built around the command line.