MDL-23538 backup: tidied up phpdocs + coding style
MDL-48277 css: initial csslint config file

Will throw errors about invalid CSS
MDL-48277 css: remove empty CSS files

To avoid tools moaning and uncessary file loads
* course/style.css was mistakenly added empty in 01e0e7044
* theme/canvas/style/question.css has been empty since 2.1 481dc639
MDL-48277 css: remove invalid @-ms-keyframes rule

This is directly copied from bootstrap, but was added to a beta version
of IE10, but never the production version so is uncessary.

Refs:
http://blogs.msdn.com/b/ie/archive/2012/06/06/moving-the-stable-web-forward-in-ie10-release-preview.aspx
https://github.com/CSSLint/csslint/issues/295
MDL-48277 css: enable duplicate definitions lint rule

And remove duplicates found in code which were detected by this rule
(leaving the last rule defined as this would take precidence).

https://github.com/CSSLint/csslint/wiki/Disallow-duplicate-properties
MDL-48277 css: enable some helpful csslint warnings

Note that these rules cause a resonable amount of warnings when run
across the codebase but should be useful in the development of new css.

* known-properties can find typos in properties used
  https://github.com/CSSLint/csslint/wiki/Require-use-of-known-properties
* display-property-grouping can discover situations where rules are used
  in invalid combinations
  https://github.com/CSSLint/csslint/wiki/Require-properties-appropriate-for-display
* empty-rules finds situations where empty rules are defined
  https://github.com/CSSLint/csslint/wiki/Disallow-empty-rules
* important warnings when !important is used (generally bad for themers)
  https://github.com/CSSLint/csslint/wiki/Disallow-!important
MDL-48189 grade: letters now covered by behat
MDL-48276 qformat_xhtml: avoid uncessary html in .css file

In order to help automated tools move the html out of the css
file.
MDL-41155 Lesson: Added behat tests for multiple question attempts
MDL-41155 Lesson: Fixed multiple question attempts logic

Thanks to Rajneel Totaram for providing this patch.
MDL-47329 mod_book: use embedded pagetype instead of hardcoded HTML
MDL-47329 mod_book: missing RTL styles, added page body selectors
MDL-48190 behat: Fixed visit background in MoodleScenarioTester
MDL-43483 mod_chat: Fixed race condition issues, including not useful logs.
MDL-22309 accesslib: Adding unit test to expose the issue
MDL-22309 accesslib: Preventing incorrect get_role_users() uses
MDL-22309 report_singleview: Fixing wrong uses of get_role_users()
MDL-48210 plugin_manager: Invalidate caches after fetching updates info
MDL-48210 updates checker: Improve cron notifications processing

These are cosmetic improvements spotted while working on the issue.

1. Do not waste time if there are no changes to notify about.
2. Fix the legacy plugin manager's get_plugins() call.
MDL-31500 backup: Remove frontpage restore UI restrictions