Suggested commit message:
Issue #2001310 by chx, berdir, yched, effulgentsia, YesCT: Disallow firing hooks during update.
In order to get a reliable and testable update environment, we have actively tried to avoid hooks during update and preached against them. It doesn't quite work tho.
ModuleHandler is pluggable, replace it with an UpdateModuleHandler during update. UpdateModuleHandler should throw an exception on you if a hook is fired. Also move module_enable,disable and uninstall into the ModuleHandler family, move update_module_enable under UpdateModuleHandler::enable.
Commit it the moment the testbot approves. (Aka. run and don't look back.)
User interface changes
None. Although module_enable/disable/uninstall is deprecated
PASSED: [[SimpleTest]]: [MySQL] 56,995 pass(es).
PASSED: [[SimpleTest]]: [MySQL] 55,255 pass(es).
PASSED: [[SimpleTest]]: [MySQL] 56,659 pass(es).