Core: reintroduce service hooks (#695).

The `serviceArrived()` and `serviceGone()` hooks are back.

Note: these hooks are *not* required to actually consume a service as this is done by injection now. Most (service consuming) plugins are not required to implement these hooks.

However, these hooks are still useful when a plugin needs to do some work just in the moment when a service becomes available resp. is about to go away.

The hook signatures are the same as they were in DM 4.3

See #695.