refactor: SeD

* use boost::function instead of function pointers for callbacks.
It brings more flexibility, since we could now use functors or
even function with slightly different signature using boost::bind
* simplify heartbeat callback and its registration
*simplfiy SeD::getServices to use std::transform instead of hand-made loop