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)
Yep, there are 2 things every base class have to provide for this interface to work: a type called class and a static functions that returns a string containing the suffix of the library filename.
only bid_request and win_cost_model do not have the typedef Factory, but I added an extra typedef on those classes to keep the interface homogenous.