hooks: fix case when hook is removing in event handler
hooks: fix case when hook is removing in event handler

- set removed hook listener to noop so that's not called if remove happens in `runHooks`
- make copy of listeners array to keep `runHook` loop in sync

McBen/ingress-intel-total-conversion,McBen/ingress-intel-total-conversion,sndirsch/ingress-intel-total-conversion,sndirsch/ingress-intel-total-conversion,McBen/ingress-intel-total-conversion,McBen/ingress-intel-total-conversion,sndirsch/ingress-intel-total-conversion,sndirsch/ingress-intel-total-conversion,McBen/ingress-intel-total-conversion,sndirsch/ingress-intel-total-conversion