PluginLoader changes:
* Early directory safety checks now make sure the directory is actually a directory.
* Forgot to return the plugin set early if the plugin directory is empty.
* The log now tells the user when it finds a duplicate plugin.

PluginObject changes:
* Renamed getModName() to getPluginName().
* Implemented getPluginImpl(), which returns a Plugin object.