MDL-31356 enrol_imsenterprise: New Features

* Feature 1: Allow nested categories when creating courses.
* Feature 2: Allow updates to course Full Name and Short Name.
* Feature 3: Allow setting authentication type for users.
* Feature 4: Allow updates to users.

Also added tests and updated course update routines so it doesn't
muck with DB directly.
MDL-31356 enrol_imsenterprise: Fix behaviour with course idnumber

When not set we shouldn't throw a warning
MDL-31356 enrol_imsenterprise: add additional test coverage