Better handling of plugin startup errors

* Don't enable plugins that throw an exception from `Plugin.onEnable`
* Don't enable plugins if their dependencies are not enabled
* Add a bukkit.yml setting `require-all-plugins` to shutdown the server if any plugins fail to load/enable