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.
Bleh... the status code stuff is such a mess. Okay, if we go this route then, it would be good to change:

https://github.com/alliedmodders/sourcemod/blob/master/core/logic/PluginSys.cpp#L1141

That to Plugin_BadLoad, and..

https://github.com/alliedmodders/sourcemod/blob/master/core/logic/PluginSys.cpp#L2220
https://github.com/alliedmodders/sourcemod/blob/master/core/logic/PluginSys.cpp#L2243

These two include Plugin_Failed.

This way the meaning of "Failed" becomes "An error that is unrecoverable" and the most severe existing uses of "Failed" become "unloadable plugin."