Refactoring of the ServiceRequester class

* `ServiceRequester` inherits from `DataFlowInterface` which allows to add required 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(shared_ptr)`).

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).