MDL-32137 Fix message preference settings.

When a messaging output is set to forced, users should not be able to change
that. Regression intoroduced in bb3546f3 made possible to change checkboxes
(but not avoid forced settings). This fix replace checkboxes for 'forced'
settings with the corresponding message, similar to how it worked for
disallowed before.
MDL-31908 Glossary: entry list format- printable version does not show content
MDL-31711 Documentation : changed usages of @property to @var for non-magic variables.
MDL-32213 Question upgrade now correctly handles non-core manually-graded question types
MDL-32201 question export: use qformat_xml::write_answer in base class

Without this, images in answers were not being written to the export
file for questions using extra_answer_fields.
MDL-32220 question import: files sometimes stored in the wrong context.

Sadly, this involves a small API change, but I don't believe anyone was
using the argument I had to remove (because we were sometimes passing a
wrong value, and there is not way to compute the right value at that
point in the code.)

Also sadly, the code to compute the context we are importing into is now
rather spaghetti-like, but it works.
MDL-32239 question bank: wrong cap checks editing/viewing quesitions

None of these problems affect the default roles. They only occur when
the permissions have been edited to allow restricted subsets of the
question capabilities.

In some cases, things that the restriced subset of capabilities should
have allowed were blocked by errors. In other cases, users were allowed
to do more than they should bave been due to failures to check the
right capabilities in the right places.

For full details, see the bug report.

Two of the bugs were previously reported separately as MDL-26395 and
MDL-27232.
MDL-32246 question export: should cope with unrecognised qtypes.

If a question is of an unrecognised type, then we just omit it from the export.
MDL-32256 quiz_cron() now returns true as expected by the current API
MDL-32258 database module does not have any data_cron() function to execute
MDL-32039 qeupgradehelper: fix typos in the lang strings
MDL-32264 theme_standard: Fixed multi-day calendar event border issue
MDL-32081 csslib: Added unit tests for complex background images
MDL-32081 csslib: Improved handling of parentheses when processing styles
MDL-32018 mod_wiki: Improved form definitions to ensure they consistent and secure
MDL-32018 mod_wiki: Fixed formatting of the page title so that is is consistent and secure
MDL-32018 mod_wiki: Fixed up whitespace after peer-review
MDL-30784 - lib - Patch provided by Jason Hardin to provide detection for Android Tablets to allow the theme engine to provide the tablet theme
MDL-31789: Allowing context object to be passed to JS using json_encode()

Classes with magic properties such as context do not pass through json_encode().
The solution is to implement iterator in such classes and convert what we
feed to json_encode to array using 'foreach' before we pass it to json_encode():
- class context implements IteratorAggregate
- added function convert_to_array() that converts anything to array
- before calling json_encode we convert the argument to array
MDL-32171: add 'Manage' link to Picasa repository