ServiceRequesters are managed by shared pointers

Recreated from #24, but removed inheritance from `DataFlowInterface`:

* Use shared pointers to manage ServiceRequester instances internally, like for Services.

* Added `ServiceRequester::addServiceRequester(shared_ptr)` and
  `ServiceRequester::setOwner(TaskContext *)` member functions to add service
  requesters created elsewhere to the interface (in analogy to `Service::addService(shared_ptr)`).

* Make `ServiceRequester::connectTo()` a virtual function so that implementations can
  override it (e.g. to connect ports). This replaces inheritance from `DataFlowInterface` compared to #24
  and still enables ServiceRequesters which have ports.

This patch breaks the `ServiceRequester` API and requires patches in [ocl](https://github.com/orocos-toolchain/ocl/compare/master...servicerequester-refactoring) and [rtt_ros_integration/ros_comm](https://github.com/orocos/rtt_ros_integration/compare/hydro-devel...servicerequester-refactoring).