refactured plugin load/unload notification mechanism:

previously you had to do:
- implement the ComponentLoaded() callback
- inside that, detect the load of an IPluginList instance
- use that instance to catch events of plugin loading/unloading
- in those event catchers implement an access to that IPlugin list to get instances of Plugins

now the notification has been drastically simplified:
- plugins loading/unloading now is broadcasted to all components the same way as previously already components and maplayers were.
- you just have to watch in function ComponentAdded() for plugins that interest you.
- if such appear, remember them in member variables and deal with them.
- if such disappear (via ComponentRemoved()), forget them.