Add TransportFactory and additional transport implementation - nanomsg

Add TransportFactory to offer interfaces for transport functionality implementations.
As alternative to ZeroMQ, add nanomsg transport implementations.

Usage of nanomsg can be triggered by passing USE_NANOMSG=1 argument to cmake:
cmake -DUSE_NANOMSG=1 <source_dir>
for this, nanomsg library has to be present on the system.