More consistent behavior for plugin (de)activation

* If a plugin is already active, allow it to become network active.
* If a plugin is already network active, don't allow it to become active.
* Network active plugins must be deactivated with `--network` flag.
* Throw a warning when an inactive plugin is attempted to be deactivated.

Fixes #1395, #1556