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.
The whole point of this PR is to call DropEverything on the plugin which is paused by the SetFailState native.
It does this by passing the Plugin_Failed status to CPlugin::SetErrorState, which was modified to drop everything, if called with Plugin_Failed.
SetErrorState also calls CPlugin::SetPauseState now instead of only CPluginManager::_SetPauseState, so the libraries of the plugins are updated with the OnLibrary(Added|Removed) forwards (and OnPluginPauseChange is called).

We could still change the signature of SetFailState to include another boolean which controls calling of DropEveryhing to pause dependent plugins, but i tried to avoid changing the intercom system.