I2C Endpoint class.

Endpoint for an I2C connection and endpoint handling.
I2C Endpoint design and documentation.

The design is strongly related to the wiringPi I²C library (which is the target library), but can be used elsewhere, too.
I2C endpoint: implementation if I2CEndpointException
I2C endpoint: implementation of dummy client
I2C endpoint: prepared cmake for distinguishing i2c libraries
I2C endpoint: added forgotten public qualifier to I2CEndpointException
wiringPi and CMake: it works if you call the library by its name …
I2C endpoint: first wiringPi implementation

Tests pending.
Use C++ headers where possible
Put local helper functions in anon namespace
Test code sends a double beep
Code clean-up

* const declarations
* parameter handing
* some comments
I2CEndpoint: Introduce I2CBroker
Use find to access map members.
Use pointers in endpoint broker.
I2CEndpoints are not unique on instance base.

They must not be copied (due to the underlying FDs) and will be setup on instantiation and cleared on destruction.
Code clean-up.
integrated I2CEndpointBroker into the test frame (main.cpp)
Merge branch 'i2cendpoint'

Added an I2C device endpoint infrastructure with resource management (broker) and library selection based on compile environment.
use {i,o}stringstream specializations