MDL-34225 course completion : move /lib/completion/* up to /completion
MDL-34225 course completion : moved criteria classes into criteria subdir
MDL-32665 mod_chat: disabled popup notifications in the chat windows
MDL-34400 Alfresco: Updated PHP SDK to v0.1
MDL-34400 Alfresco: Altering the API for integration into Moodle
MDL-29271 Alfresco: Repository can browse sites
MDL-34285 condition: Added is not empty option for user profile conditions and moved strings.

As part of this change I added a new condition for user fields: is not equal.
I also copied the strings being used from the filters lang file to the condition
lang file and changed the uses in code.

AMOS BEGIN
  CPY [contains,filters],[contains,condition]
  CPY [doesnotcontain,filters],[doesnotcontain,condition]
  CPY [isequalto,filters],[isequalto,condition]
  CPY [startswith,filters],[startswith,condition]
  CPY [endswith,filters],[endswith,condition]
  CPY [isempty,filters],[isempty,condition]
AMOS END
MDL-34285 condition: Fixed up missing operator
MDL-30651 libraries: Replaced deprecated PARAM_INTEGER with PARAM_INT
MDL-32945 libraries: Replaced deprecated PARAM_MULTILANG with PARAM_TEXT
MDL-32942 libraries: Replaced deprecated PARAM_ACTION and PARAM_FORMAT with PARAM_ALPHANUMEXT
MDL-31023 libraries: removed deprecated function and classes from pagelib.php
MDL-31023 Libraries: removed legacypageobject usage
MDL-31294 Forms Library: Removed deprecated file and format form element
MDL-34286 conditionlib: Fixed up loading of user profile data for custom field conditions
MDL-33448 javascript: Added caching for the YUI instance used for debug in get_string
MDL-34066 adaptive behaviour: refactor logic out of renderer.

These changes move the logic to the behaviour class, which is how things
should be.

It also makes it easier to re-use the code that displays the messages
like "Marks for this submission: 1.00/1.00. Accounting for previous
tries, this gives 0.33/1.00." in other places.

To try to make it clearer what is going on, I introduced a new class
qbehaviour_adaptive_mark_details to hold and document the data that the
behaviour needs to return, and the renderer can base its display on.

As far as my testing can tell (and there are new unit tests), this
commit does not change the existing behaviour.

This commit also replaces all the string concatenation that is going on,
which should help translators. At the moment, a few of the old strings
are still in the language file, and are used in the unit tests to verify
that the behaviour has not changed.

Thanks to Oleg Sychev for making a helpful suggestion about the API.
MDL-34226 multichoice qtype: correct is_complete_response for multianswer

The multianswer qtype uses the multi-choice one, and the way it does its
responses array breaks an assumption that multi-choice was making.
MDL-34226 multianswer qtype: basic unit test.

This verifies the previous fix, and gets rid of a rather embarassing TODO.
MDL-34251 question engine: possible infinite loop loading usages

In the case where either a question_attempt had not steps, or a
question_usage had not question_attempts, the load_from_records methods
could get stuck in an infinite loop.

This fix ensures that does not happen, with unit tests to verify it. At
the same time, I noticed an error in the existing tests, which this
patch fixes.