Make unregistration of NCPHook instances more robust.

* Do catch exceptions on unregister (too many for now).
* Register a DisableListener with NCP, for timely unregistration.
* Still attempt to unregister in onDisable (no effect for the usual
case)