ServiceRequesters can contain ports and are managed by shared pointers now

* ServiceRequester inherits from DataFlowInterface which allows to add ports.
  Matching ports are connected to the providing service in ServiceRequester::connectTo().
  ServiceRequester::ready() only returns true if all ports are connected.

  Note that a->connectServices(b) will also connect matching ports now if they have
  been added to the required interface of TaskContext a or b. A port can either be added
  to the TaskContext's provided interface (default case) or to its required interface (using
  requires()->addPort(...)).

* Use shared pointers to manage ServiceRequester instances internally, like for Services.

* Added a ServiceRequester::addServiceRequester(shared_ptr) member function to add service
  requesters created elsewhere to the interface (in analogy to Service::addService()).

This patch breaks the ServiceRequester API and needs patches in ocl and rtt_roscomm.

Signed-off-by: Johannes Meyer <johannes@intermodalics.eu>