MDL-31437 add group sync option to enrol_cohort
This patch includes following changes and new features: * Group sync in enrol_cohort plugin. * Option for editing of role in existing cohort sync instance. * Group memberships are now restored after enrolments. * New enrol method for restore of protected group membership. * New component callback 'restore_group_member' for restore of general plugin group membership. * New component callback 'restore_role_assignment' for restore of general plugin role assignments. * Implemented group membership protection in enrolment UI. * Other minor fixes and cleanup. Notes: * The YUI base enrolment page is not reimplemented yet - see MDL-35618.