Changed InvokableHook operation constants to uint and had them assigned to the same values as is used by the kernel.
Added new class HookKey.DefaultEqualityComparer and returned an instance of it from new property HookKey.EqualityComparer.
Changed the internals of the managed commit hook registration; now hooks per trigger is keyed not on a string, but on a combination of typeid + operation (in the form of a HookKey).
Synchronized access to the code host hook registration data to assure registering of hooks are not done in parallel.
Redesigned the HookKey class to allow reusing of instances (since performance is critical when doing commits).
Changed the API of the InvokableHook methods that simplifies invocation of all hooks given a certain type + operation. Now every such method takes a HookKey instead, for faster lookup.
Changed Transaction.Commit to reflect recent changes in hook invocation API's. The new version is still not yet finished, but will be when proper error handling is added.