Bid request multiplexer

Tiny router multiplexer, to be used by the actual bidding agent. 
 * does requires any change on the router side (does not change the protocol)
 * does not change the interface of BiddingAgent (except shared_ptr<RouterMultiplexer> defaulting to an empty shared_ptr, as a last argument). 
 * When an empty shared_ptr<RouterMultiplexer> is passed as a last argument of a BiddingAgent constructor, then a new "exclusive" RouterMultiplexer is constructed, to be used by the Bidding Agent.
 * example/mutiple_agent.cc is a muti-agent version of example/bid_request_endpoint.cc
 * example/bidding_multi_agent_ex.cc is a multi-agent version of example/bidding_agent_ex.cc