MDL-41192 course: Properties of cm_info are read-only and calculated on request

Also added phpdocs
MDL-41192 course: Added property-read cm_info::effectivegroupmode
MDL-41192 course: Added unittests for cm_info properties
MDL-41219 course: Make properties of course_modinfo read-only

added phpdocs and unittests
MDL-41436 implement new increment_revision_number() function

This is intended as a revision counter for local modinfo caching. It should be a lot more reliable and faster than doing it in PHP. Please note you need to invalidate all course caches after using this.
MDL-41436 Move course content cache to MUC

added cache definition and DB field course.cacherev for cache validation
MDL-41436 Removing references to fields course.modinfo, sectioncache

Also add the field cacherev to the lists of default fields in course retrieval functions
MDL-41436 Save extra DB query since 'enablecompletion' is cached
MDL-41436 Allow user=-1 in get_fast_modinfo()

Remove ref to nonexisting course.modinfo in MNET auth, use get_fast_modinfo() for user=-1 instead
MDL-41436 Remove DB fields course.modinfo and sectioncache