Plugin framework enhancements.

Up until now the plugins for the fd/sd/dir are loaded semi at
random by the way they are stored in the plugin directory as
they are loaded in the order readdir returns the directory entries.

This is NOT how you want it in certain situations so from now on
you can specify in the fd/sd/dir a new keyword in the generic
daemon config resource named "plugin names" which is a list
which is seperated by a ':' and enumerates the plugins that
should be loaded in what order by a daemon. In this resource
you can define the following 'plugin names = "python:bpipe"'
which means in the fd load the following plugins:

- <plugin_dir>/python-fd.so
- <plugin_dir>/bpipe-fd.so

If you don't specify the plugin names then the old behaviour
will be used to load all plugins which match the pattern
*-<daemon>.so

Now we can order the way plugins are loaded there is also a
new flag to the generate_plugin_event() function which is named
reverse which is a boolean and if its set the plugins will be
called in reverse order that they are stored in the plugin list.

Fixes #192: Plugin framework enhancements.