Added basis of plugin system

Plugins can now load shared objects
and extract functions from them that
can be called through the plugin's
public interface. What's next is to
write the plugin_collection, which
will load all the plugins and provide
an interface for distributing notifications
to all of them.