MDL-40830 Clear course cache in mod_assign generator
MDL-41179 is_user_access_restricted_by_capability() must look at specified user and not current
MDL-36789 Quick course cache integrity check for deleted modules
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
MDL-41181 function moveto_module does not modify properties of object

instead it returns the new value for module visibility
MDL-41181 No need to reset modinfo cache after moveto_module()

it is already reset inside the function
MDL-34397 Move course content cache to MUC
MDL-34397 Removing references to course.modinfo
TODO
MDL-34397 Do not access deprecated field course.modinfo

rebuild_course_cache() now supports resetting cache for multiple but not all courses
MDL-34397 Object section_info calculates expensive data on demand only
MDL-34397 course: Can not write to the read-only properties of cm_info
MDL-34397 Properties of cm_info are read-only and calculated on request
MDL-34397 course_modinfo REVIEW
MDL-34397 Adding the user request cache when static var is not enough
MDL-34397 Save extra DB query since 'enablecompletion' is cached
MDL-34397 Removing references to fields course.modinfo, sectioncache
MDL-34397 Remove ref to nonexisting course.modinfo in MNET auth
MDL-34397 Allow user=-1 in get_fast_modinfo()
cm_info improvements