MDL-43369 : quiz statistics - average across attempts

where item seen and not across all attempts for subqs.
MDL-43766 reports: Fixed wrong string variable
MDL-43800 course: groupings are sorted alphabetically
MDL-43246 give unit tests class a better name.
MDL-43246 some question data mapper unit tests

With fixes for the issues unearthed by these tests.
MDL-43246 question engine: avoid order-by id.

This was breaking with oracle master/master replication. Fortunately all
the places that needed to be changed were private to datalib.php. There
is still some ordering by id there, but only places where we want a
consitent, rather than meaningful, order, so that is OK.

The queries changed by this patch all have subqueries in aggregate
queries that pull out the latest step for a question_attempt. Those
queries used to look for MAX(id) but now they look for
MAX(sequencenumber). This is equivalent (for databases where ids always
increase with time, except for auto-saved steps. In the past,  an
auto-saved step might have been considered latest. Now the latest step
will always be one that has been properly processed. You can aruge that
this change is an improvement. Anyway, it is a moot point. All these
queries are only used in reports which are run on completed attempts,
where there will not be any autosaved data.
MDL-43809 qformat_xml messes up $s in multianswer questions.
MDL-43688 dndupload: fixed positioning across themes
MDL-40786 User Profile: Right align profile fields in RTL mode (theme/bootstrapbase, theme/clean)
MDL-40786 User profile: Fixing narrow screen RTL collapse
MDL-43440 unit testing: Use cmid in unit tests when it should be used.

instance is has been used instead of cmid.  This works as all id's are 1
in most cases, but not always.

accesslib_clear_all_caches_for_unit_testing was updated to clear the
$USER->access cache which would fail test when the wrong user's data was used.
MDL-43746 fix require_course_login regression caused by MDL-25981
MDL-43757 messaging: Behat feature to test participants messaging

The new test checks that messages can be sent from
the participants block and they can be read when
accesing user's recent conversations.
MDL-43757 behat: Allowing the form field guesser to detect TinyMCE

It includes 2 more minor fixes:
- Escapes values sent to TinyMCE as it was breaking
  when values contained double quotes.
- Adding seconds to the screenshots directory to
  avoid using the same folder for multiple runs.
MDL-43773 mod_choice: Swap order of name column headings in text export
Merge branch 'w04_MDL-43746_m25_courselogin' of https://github.com/skodak/moodle into MOODLE_25_STABLE
MDL-43734: Prevent purging of all user session cache
Automatically generated installer lang files
Merge branch 'MDL-43809_25' of git://github.com/timhunt/moodle into MOODLE_25_STABLE
MDL-43581 additionalhtmlfooter should be added to every page

Not just pages with a visible footer.