MDL-40323 report_log: fix strict standards error
MDL-40678 JavaScript: Split out moodle-core-notification into submodules
MDL-40806 JavaScript: Add module metadata in JS dev modes
MDL-39461 badges: Fix cURL expectation failed error when trying to connect to backpack
MDL-40618 backup: centralize info field, use info in queries.

encode_backup_temp_info() and decode_backup_temp_info() have been
introduced to keep the info field encoding in one place.
Many locations used get_backup_ids_record() to obtain info, that
makes lots of calls to get_backup_ids_record() which can be slow.
We now complete all those inline by adding the info field to the query.
To reduce memory usage, all queries of that nature have been changed
to use get_recordset_*. gzcompress was introduced if available to minimize
traffic to/from the database and to decrease the memory required for caching.
The compression time is saved by the benefits in other places of having smaller data.
MDL-38759 mod_choice: use inline-block for horizontal choices
MDL-39359 - mod/assign: Allow zipped folder to be uploaded for returning feedback files

The "Upload multiple feedback files in a zip" feature is convenient, but requires that
the files sit directly within the zip file. As the files will most likely be extracted
to a folder after downloading, it's quite reasonable to expect teachers to zip the
folder up rather than selecting all files and zipping them.  This patch allows for a
zipped folder to be uploaded; if the only file found after extracting is a directory,
the contents of the directory are used instead of the results of the extraction.
MDL-40727 Cache: Fix file cache store on windows.
MDL-29731 Bugs in recent activity when using separate groups
MDL-29731, MDL-40843 Correctly access course_modinfo->get_groups()
MDL-40005: LTI module uses Apache specific function for retrieving request headers
MDL-11270 use NVARCHAR(MAX) and VARBINARY(MAX) in SQL Server
MDL-39786 add support for suspend only in meta course plugin
MDL-36399 LTI editing tool config breaks on Oracle.

Note that this fix will fail if the tool URL is longer than 1333
characters.
MDL-40863 feedback and LTI mods need get_extra_capabilities fn

Since moodle/site:accessallgroups is relevant to how them.
MDL-40867 External tools should launch pop-ups from the course page

Without this fix, if an LTI tool is set to open in a pop-up, then
clicking the link on the course page opens another almost blank page,
which then tries to open the pop-up, which is almost invariably caught
by your pop-up blocker.

With this fix, clicking the link on the course page opens the pop-up
directly, like for pop-up resources.
MDL-40867 fix misleading PHPdocs for _get_coursemodule_info
MDL-40857 External tool (LTI) capabilitiy names confusing.

I have improved the names in the language file so that they actually say
what they do (based on my reading of the code). I have also added
comments to access.php explaining each capability.

I have corrected a few of the RISK in access.php which were wrong.

I have changed a couple of the archetypes so that guests cannot launch
LTI activities, and editing teachers cannot do editing things.
MDL-40857 External tool: fix incorrect moodle_url usage.
MDL-40854 fix mod/...:view capabilities

Prior to the fix, if you did not have a capability like mod/page:view,
then you woulds still see the link to the Page activity in the course
section, but when you clicked on it, you would run into a
require_capability error.

It is a principle that we never show users a link to a page they are not
allowed to access, therefore, when users do not have mod/...:view, they
should not see the link on the course page.

This patch implements this in the cm_info class, in a similar way to how
access restrictions by groups works.

It does not assume that the mod/...:view capability exists. If the
capability does not exist, then users are not prevented from seeing the
link.