Implement notification subscription management via Protocol
NotificationManager now lives in separete thread. It creates NotificationSubscriber object for each new connection on NotificationServer. Each connection does not have its own thread as in case of Connection, because the communication there is minimal and we don't mind if the NotificationManager thread gets blocked for a short moment. Each Subscriber keeps state of the subscription. When a notification is delivered to NotificationManager, it will pass them to all subscribers which will then decide whether they accept the notification and eventually send it to subscribed client. Currently this breaks notification and subscriber debugging because we completely removed the DBus introspection. The plan is to introduce a subscription change notification (a type of Protocol::ChangeNotification) that clients like AkonadiConsole could subscribe to to get information about new or removed subscribers and their subscription state.