MDL-44810 editor_atto: restore selection after button press

Fixed issue where clicking on buttons erroneously lost viewport focus and selection.
MDL-44949 Atto: JS error when picking an image from a repository
MDL-44241 atto_unlink: Merge into atto_link
MDL-44873 theme_bootstrapbase: Added support for notifytiny class
MDL-44873 behat: Added suppport for clean error class.
MDL-43856 MathJax: Add a setting for additional delimiters to support e.g. ASCIIMATH
MDL-43856 MathJax: Dynamically load mathjax into the page (as required).

This is to solve a tricky edge case, when a page has no equations, and then an AJAX
action loads filtered content which contains an equation. (The glossary filter can do this).

To fix this I split the loading into configuration and typesetting. The config always happens,
but does not load the external mathjax libraries. The typesetting happens when an equation is
found - and is what triggers the load of MathJax. This can happen in response to an AJAX event.
MDL-40872 Restore functionality of showrecentsubmissions setting
MDL-40843 recent_activity: corrections to grouping and user fields
MDL-40843 workshop: show user names in recent activity
MDL-40843 workshop: sort entries in recent activity block by time
MDL-44408 Add "pagination" to WebService get_forum_discussions
MDL-44408 Adding missing order (so we start looking for newest discussions)
MDL-44349 core_moodlelib: Improve word counting rules

Signed-off-by: Tony Butler <tonyjbutler@gmail.com>
MDL-44349 core_moodlelib: Add unit tests for count_words()

Signed-off-by: Tony Butler <tonyjbutler@gmail.com>
MDL-44891 Behat: Add step to check attribute

This commit creates a Behat step of the form:

Then the "title" attribute of "Toggle visibility" "button"
should contain "Show"

This is useful because unless I missed something there is currently
no step that checks attribute values; this seems like a simple
generic step. Behat is intended to check user-visible effects in
the resulting HTML, and sometimes these effects are implemented
using attribute values (two common examples are the alt= attribute,
which is visible to screenreader users, and the title= attribute,
which is visible to all users; there's also the src attribute of
images, and lots of other possibilities too).
MDL-44891 Behat: Add step to check attribute

This commit creates a Behat step of the form:

Then the "title" attribute of "Toggle visibility" "button"
should contain "Show"

This is useful because unless I missed something there is currently
no step that checks attribute values; this seems like a simple
generic step. Behat is intended to check user-visible effects in
the resulting HTML, and sometimes these effects are implemented
using attribute values (two common examples are the alt= attribute,
which is visible to screenreader users, and the title= attribute,
which is visible to all users; there's also the src attribute of
images, and lots of other possibilities too).
MDL-44940 quiz editing page problems from MDL-43749.

* If the quiz starts with an empty page, you could not move the first
question up onto it.
* Adding page breaks in the middle sometimes added them in the wrong
place.
* Adding a new page at the end is problematic, and here we fix it as
much as possible, by letting you move the last question down to create a
new page. This needs MDL-40987 to be fixed properly.
MDL-44948 add tool_qeupgradehelper to the list of deleted plugins.
MDL-36141 course Define role to limit access to Other users.