refactored dependencysystem
We don't have multiple types of dependencies anymore. The only type left
is a "harddependency". If a plugin has a softdependency, the plugin
should access depending plugin in a PostEnable-Method.

In addition, any plugin MUST now extend ExternalPlugin. The reason for
this is the pluginManager, which now comes with every single plugin.
Every plugin has a "getPluginManager()"-Method to get other plugins.