The new logic is that the questiontext defaults to HTML if the format is
not specified, then all other fields default to the same format of the
question text.
However, good practice is that the XML file should specify the format
for each bit of text content.
This code is not 100% backwards-compatible, since some methods have new
arguments, however for question types that have not been updated, it
will just generate a PHP Warning, which is, I think, and OK way to let
qtype developers know that they need to update their question types.
This commit also includes a lot of useful tidying up of some of the unit
test helper code. I turned out that I could not use all the helper code
in my new tests, but despite that it will be useful in the future, so I
am committing it here.