Pause dependent plugins on SetFailState (bug 6120)

When a plugin calls SetFailState it is paused and all natives it
registered are unavailable. Other plugins, which depend on those natives
keep running and error whenever they try to call those natives.

This correctly sets the dependent plugins to an error state and also calls OnLibraryRemoved correctly for all libraries as if the
plugin which called SetFailState was unloaded.

As a sideeffect OnPluginPauseChange is called again, when a plugin changes its pause state.
These should stay as Plugin_Error, I think... if it's Plugin_Failed, we assume the error was so severe that we can't perform diagnostics (like say, the underlying plugin structure may be read as corrupt, so `sm plugins info <N>` will display a very abbreviated listing). Since that's not the case here, "Error" should be good enough.