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-36005 formslib: Move the help icons out of the form labels for accessibility.
MDL-36005 formslib: Version bump for css changes
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-41068 profile: Repair profiling after box API change

The box API was used with an extra incorrect parameter
in the profiling code.  It worked without issue until
the introduction of error checking in MDL-40842.  It
has failed since then.
MDL-41071 core: plugininfo_mod caches in plugininfo_mod definition
MDL-41045 course_add_cm_to_section should not test for sections unless necessary
MDL-22236 Webservice file upload - Allow webservice file uploads direct to a draft filearea.

Via post to /webservice/upload.php
MDL-35931 Accessibility - adding focus change when repository is selected
MDL-22236 user webservice: add_user_private_files

Add webservice for adding files to user private files.
MDL-22236 webservice : Remove filearea restrictions on user draft areas.

It does not make sense to apply restrictions to the size of a users draft areas
so this is only checked if uploading direct to user private files.
MDL-30001 WEBCT Import does not work for 2.0
MDL-40952 skip only the opcache requirement in environment test

Please note we need other optional extensions and settings because otherwise some tests fail without explanation.