Add a base extension hook for managing multiple items in a registry.

Review Request #9283 — Created Oct. 18, 2017 and submitted — Latest diff uploaded




This introduces BaseRegistryMultiItemHook, which is similar to
BaseRegistryHook but handles registering/unregistering a list of items
at once. It's useful for extension hooks that otherwise need to manage
multiple items, helping to consolidate that logic.

Unlike existing hooks in Review Board that manage multiple items, this
is also careful to unregister any items that were registered upon
encountering an error, so that some items don't remain permanently
registered even if the extension is shut down.

Unit tests were added for this hook.

Unit tests pass.

Moved some extension hooks to this in Review Board and ran tests. Those
also pass.