Prevent exceptions when shutting down extension/integration hooks.
Review Request #9915 — Created May 7, 2018 and submitted
When shutting down extension and integration hooks, we loop through all
the hooks and disable each one. The act of disabling then turns around
and modifies the hooks we're iterating over, which can cause crashes.
We now make a copy of the hooks set that we're iterating over before we
loop through and shut them down.
Unit tests passed.
Hit this during testing and development of another feature. This solved