Fix broker events to match .NET rules

The current way of dealing with event subscriptions is just broken. Consider the following scenario:

```charp
broker.RegisterAppleService(new ApplePushChannelSettings(appleCert, ""));
broken.OnDeviceSubscriptionExpired += ExpirationHandler
```
With current implementation ExpirationHandler will never be called. 
If you subscribe to event first and than register a service, then you can't *unsubscribe* from that service until broker does that for you in StopService.