To create a plugin system in C++ you need three things.
* An interface for the plugin
* A way for the plugin to inject itself into your program
* A way for the program to load the plugins
The first two parts are handled together in this case. By having