MDL-36002 core: Make drag and drop keyboard friendly

This change adds keyboard support to core drag and drop.

Selecting a grab handle and hitting enter (or space) will
open a menu of possible drop targets and allow you to choose one.

The only other UI change this implies is we need to show the grab
for blocks.
MDL-36002 dragdrop: focus fix and exception catching

This sets the focus correctly after a cancel or drop event.
It also catches exceptions from the lock/unlock functions.
MDL-36002 dragdrop: Add simulated event for keyboard drag drop.

This is to prevent any accidental state change in Y.DD.DDM.
MDL-40852 behat: Wrong URLs detection
MDL-40673 behat: Data generator for permission overrides
MDL-40673 behat: New scenario for permission overrides
MDL-41050 Progress bar: Width parameter does not work
MDL-40711 blogs: Replace blog_entry_deleted with events2
MDL-40711 events: Resolve conflicts with MDL-41000 and add phpdocs
MDL-41045 course_add_cm_to_section should not test for sections unless necessary
MDL-35931 Accessibility - adding focus change when repository is selected
MDL-30001 WEBCT Import does not work for 2.0
MDL-41019 refactor string managers to new core_ classes
MDL-27655 improve purge all caches.

If you click the link in the page footer, then it will reliably
redirect you back to the page you were on after purging the caches.

If you go to the purge all caches page in the admin menu, it shows you a
purge button, with no cancel button. Clicking the button purges the
caches and takes you back to the page with the button.
MDL-39507 questions: fix pluginfile URLs before format_text.
MDL-30895 switch from dl tag to table in the accessible chat
MDL-40996 quiz show user pic should also show name.

This was a regression introduced by MDL-20636 two years ago!
MDL-41004 Resource: Does not have generator
MDL-41091 questions: fix get_all_submitted_qt_vars for unit testing.
MDL-19171 Calendar: show course links in more places