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)
And actually if you want to avoid those error prone #ifndef we can use #pragma once which makes this way easier.