ExtensionRegistry clean up

Work oriented toward ensuring the ExtensionRegistry is put into a correct state when ops that modify it fail.

Primary JIRA is WFCORE-21; the other work is general cleanup of how this class works and is used.
The remove handler causes reload required. I assume that is because there could be some subsystem config + services started. Is the same needed here now in this case?