Updated plugin loader

Plugin loading is now done via the PluginManager class. Different plugin
types have been defined with details of upcoming interfaces.