MDL-45982: Implement displaying of non error messages from a provider.
MDL-43347 grades: consistent interface for drop lowest setting
MDL-43347 grades: convert keep highest to text field
MDL-45381 mod_forum: changed event URL for subscription created/deleted events
MDL-16474 scale: Allow scales with 1 item
MDL-46144 core_calendar: Fixed linking of labels on calendar pages
MDL-42393 calendar: Preventing open/close loop in events overlay
MDL-45381 mod_forum: updated unit tests for subscription created/deleted events
MDL-46225 core_admin: Changed heading to add a new user to a button
MDL-43849 mod_forum: Adding tests for observers
MDL-43849 enrol_meta: Renaming methods according to what they test
MDL-46212 question editing: extra answer fields notice.

It turns out that PHP does not interpret "$field[$key]" the way we were
expecting.
MDL-46212 questions: add {} whenver vars are put into "" strings

Having had one subtle bug cased be this, I decided to do a search and
fix all of these.
MDL-46208 cachestore_mongo: fixed invalid collection name use
MDL-41502 course: removed classes and files deprecated in 2.6
MDL-42609 course: management page now selected default category initially
MDL-46016 auth_shibboleth: updated misleading comment

Also generated a random string for the password field in case it is ever used.
MDL-45945 mssql: force default database collation in all tables including temp table
MDL-45596 roles: Escape filter value before using it in form field
MDL-46126 upgrade: fix bogus nulls in user.password before changing precission

Note: there is no need to deal with Oracle empty strings here
because only MySQL running in non-strict mode is affected.