Rtbkit 632 unify injection pattern

This is a redesign to address the need to unify the injection pattern. There was lots of replicated code to load libraries/plugins. Every one of the 8 base classes repeated the same bunch of code to load them. Everything is now managed by a template (singleton) class called PluginInterface.

There are 8 placeholder functions (marked FIXME) that are there only to maintain backwards compatible interface, as RTB still uses them. If all is good with this implementation, then RTB can be updated to use the new interface and the placeholder functions could be removed.

Most of the changes are in the new classes and the 8 base classes, the other ~30 files were changed to adapt to the new interface.

Currently these changes are under test at DEV5.

NOTE: the 8 base classes mentioned are BidRequest, BidderInterface, WinCostModel, ExchangeConnector, AdServerConnector, and ExchangeSource (Bid/Win/Event)
I'm a little bit concerned about thread-safety here. If multiple threads attempt to access the instance of the singleton, bad things might happen. If you want to keep your singleton, one simple trick would be to use a static instance since this is guaranteed to be thread-safe in C++11

```cpp
PluginTable&
PluginTable::instance() {
     static PluginTable table;

     return table;
}
```