Automatic unregistering of service callbacks

so the developer does not have to remember to do it manually.

The service now keeps track of all subscriptions by client and by type.
When a client (normally activity or fragment) unsubscribes, we cancel
all the subscriptions for the client. Unregistering of the individual
callbacks are no longer needed, so they are removed. The callbacks must
still be registered.

This unsubscription is handled in onPause in the base activity which all
Squeezer activities extend. We also provide an empty registerCallback
function, so specialisations only have to implement it, if they have any
subscriptions.