MDL-37410 External PHPunit test: used ->getDataGenerator()->enrol_user instead to manually enrol the user. + improve the unassignUserCapability to remove a capability assigned by getDataGenerator->enrol_users
MDL-38102 lib: Check for null return value from password_hash function call
MDL-38547 behat: New tests

According MDLQA-1597, MDLQA-1598,
MDLQA-1599, MDLQA-1600 and MDLQA-1601
MDL-38547 behat: New generic steps definitions

For advanced users as specified in the step
description, they can be used to match any locator
using any selector type
MDL-38055 course: fixed double encoding of title properties
MDL-38524 behat: Add fake jsrev and themerev

The behat admin tool does not use moodle database
as it runs before anything else, it should set
CFG->jsrev and CFG->themerev as they are required.
MDL-38344 Calendar: converted name field in event table to text

There is no limitation on length of event name in RFC-2445, so changing type
for name from char to text.
MDL-37676 Use course grade category if mapping fails for manual grade items
MDL-38667 JavaScript: Correct loading of Shifted CSS
MDL-38666 JavaScript: Migrate moodle-calendar-evantmanager to use Shifter
MDL-38612 url: Reformat module settings form
MDL-26644 course: Remove useless setting completionstartonenrol

This commit removes any trace of the setting 'Completion tracking
begins on enrolment' as it does not appear to do anything.
MDL-38645 form: Added margin between checkbox/radio and label
MDl-38494 user: Fix uploaded datetime profile fields
MDL-38599 glossary: Reformat settings form
MDL-37602 Add new fields into the workshop table to hold the feature settings

These three fields hold the per-instance settings for the new Overall
feedback feature. Expected values in the new overallfeedbackmode fields are:
0 - the feature is disabled in this workshop instance
1 - overall feedback is optional (default)
2 - overall feedback is required (i.e. the reviewer must put some text
into the overall feedback field).

Files can be attached to the overall feedback text field, if the field
overallfeedbackfiles > 0 and the feature is enabled (i.e. it is optional
or required). The actual number of attached files is not checked in the
required mode (i.e. attaching files is always optional, if it is
allowed).
MDL-37602 Overall feedback can be configured in the workshop settings form

Three new fields are added into the into the Assessment settings section
of the form. The default value for the overallfeedbackmaxbytes is the
same as the maximum size for submission attachments (which seems to be a
reasonable value). If there is a demand and a strong use case, these
values can became per-site configurable (I can see no big benefit of
doing so right now).

AMOS BEGIN
 CPY [maxbytes,mod_workshop],[overallfeedbackmaxbytes,mod_workshop]
AMOS END
MDL-38627 force byteserving abort on error

It is weird, but Chrome PDF viewer keeps retrying byteserving requests for anything but 407. This commit also normalises response headers on all error pages.
MDL-37602 Add feedbackauthorattachment field into the workshop_assessments table

This is a flag to quickly see if some files are expected to be attached
to the overall feedback for the submission author.
MDL-38702 theme_mymobile: Replaced missing theme setting to disable CSS Optimiser.

The missing setting was a regression casued by MDL-33357.