Replace function pointers based plugin API by a class with virtual member functions
Using a class with virtual members functions would make it possible to:
- provide default empty implementations,
- better define the life-time of currently global variables.