MDL-41057 csslib: CSS optimiser improvements.

This commit makes the following changes:
* Tidies up coding style.
* Tidies up phpdocs.
* Improve CSS optimiser unit tests to cover browser hacks.
* Improve backgound style consolidation.
* Improve border style consolidation.
* Fixed optimiser to handle browser hacks like *zoom.
* Improved @ rule unit tests.
* Fixed @rule breakages caused by OS specific rules.
* Added more unit tests to cover a bit more CSS3.

I am pretty sure this patch will now enable to optimsier to
work on bootstrap based themes should developers not wish
to compress thier compiled less CSS.
MDL-32191 navigation: Add keys to module and block settings nav nodes

Conflicts:
	lib/navigationlib.php
MDL-35380 SCORM: improve check for imsmanifest file and consolidate into a single function.
MDL-36690 Do not cache objects inside course.modinfo as they may fail to serialize

convert moodle_url (all other fields are numbers or strings) to string before caching and then back to moodle_url when restoring.
Otherwise serialized modinfo can contain \0 byte which cause problems in Postgres DB
Merge branch 'wip-MDL-32191-m26' of git://github.com/samhemelryk/moodle
Revert "MDL-39876 update_course_record function to update global COURSE"

This reverts commit c290ac5510ca06b3eae557c2165c2f106dde46aa.

Conflicts:
	course/lib.php
Merge branch 'wip-MDL-36690-master' of git://github.com/marinaglancy/moodle
Merge branch 'master_MDL-35380' of git://github.com/danmarsden/moodle
Merge branch 'MDL-41040-master' of git://github.com/FMCorz/moodle
Merge branch 'MDL-41143-master' of git://github.com/FMCorz/moodle
Revert "MDL-39876 Change get_record('course') calls to get_course"

This reverts commit ab7632b74c331540c90229bf03d13aa2e6bdd9be.
Merge branch 'wip-MDL-41057-m26' of git://github.com/samhemelryk/moodle
MDL-41057 csslib: Adding a version bump to clear css caches
MDL-41191 add more test data to trigger duplicate course records
MDL-41191 mod_forum: avoid DISTINCT on TEXT columns

It is not supported by all db engines
MDL-30839 Fixing extra line breaks in error msg
Merge branch 'MDL-30839-master' of git://github.com/phalacee/moodle
Merge branch 'MDL-41191-duplicaterecords' of git://github.com/danpoltawski/moodle
MDL-39980 essay attempt-on-last. Handle the no-files case.

This slighly changes the format for the way answers are stroed in the DB
in the case where there is some HTML content, but no files. This should
not cause any problems.
MDL-39474 fix incorrect bitwise ops when setting $CFG->debugdeveloper