Make boilerplate code generation depend on the boilerplate-generator

Otherwise changes in the generator doesn't trigger regeneration.
Provide more information about plugin's supported functionality

The library needs an access to the list and number of provided functions in
order to provide querying functions for its users and to compare plugins.
Return plugin handles when loading plugins

Instead of returning TRUE/FALSE the functions loading plugins should return the
handles they get when calling dlopen() on the plugins. These handles may later
be closed by the library when needed and returning (non-)NULL value carries the
TRUE/FALSE information as well.