MDL-46195 Fix fractionsaddwrong string component in lesson & qformat_webct.

I know. You should not refer to strings from other plugins, but

* qformat_webct is importing multichoice questions in that bit of code.
  I suppose a pedant would say that qformat_webct should declare dependencies
  on all the qtypes it relies on, but that would be silly.

* Lesson should be using the question engine, rather than doing its own thing.
MDL-47143 questions: fix default for question_preview/marks setting.
MDL-46810 question CBM behaviours: improve the display of marks.

Thanks to Tony Gardner-Medwin for the suggestion.
MDL-47127 gradereport_user: Update 'datetill' string to make it more clear
MDL-46195 fix error handling.
MDL-46195 WebCT question import: Behat test
MDL-47167 XML question format: behat tests
MDL-46331 GIFT question import was breaking content inside <pre>.

Also, adding a Behat tests to verify GIFT import works without errors
(but leaving the detailed testing for the unit tests).
MDL-47186 calendar: Changed month name to h2 from h1
MDL-47187 assign: fixed timing unittest failure
MDL-46844 Embed LTI External Tools with an IFrame

Clears up weird browser issues that occur when embedding content with an
`<object>` tag.
MDL-47209 repository_skydrive: Use new oauth URLs
MDL-46747 questions: add More info link to qbehaviour help.

Thanks to Tony Gardner-Medwin for the suggestion.
MDL-47208 core_availability: Return false when cm isnt in modinfo list

If a cm isn't in modinfo's cm list, then the user shouldn't be able to see that cm.
This fixes an issue where hidden activities would cause users to be unable to use moodle.
MDL-46585 lang: 6 unused strings 'hidden' are deprecated

Strings are not used in the components where they are defined.
If they are used in other components they should be defined in appropriate locations
since the translation may depend on the subject that is being hidden.
MDL-35468 behat: escape user supplied strings in xpath
MDL-35468 cohorts: upload cohorts from csv file
MDL-46585 lang: display debugging message when deprecated string is used
MDL-47206 core: Allow tool plugins to run tasks

This issue is a part of the MDL-47194 Task.
This issue is a part of the MDL-39707 Epic.
MDL-44257 message: check if the attachment exists before remove it

Credit goes to Mark Nielsen, thanks.