Refactor plugin system a bit again

* The plugin system now support hot-reloading for changed plugins
* save event got removed, instead there are now enable, disable, join
and part events, which are much better suited for a general use-case
* intervals got removed too, they should be implemented by the plugin
itself and cleaned up with the disable hook