Notifications API

Added notifications API over websockets. User gets an instance of `ChainNotificationObserver` using which it can connect/reconnect/disconnect and collect events.

Currently named according to the rest of the APIs: `Notification` contains configuration for kinds of events to collect, `NotificationResult` contains data for each event.

However, in various Apple frameworks, the word `notification` usually means a particular event, not a type of events. Examples: `NSNotification`, `UILocalNotification`, `NSUserNotification`. 

To be more consistent we could call our notifications `NotificationConfiguration` and `Notification`. In fact, we do not even need to expose configuration as an object, it's enough to have `Chain` object to have factory methods for different kinds of notifications with appropriate parameters (address or transaction where needed).


Good point, I have no problem keeping them together.