Notifications System core

Following https://issues.cask.co/browse/CDAP-849 jira and design doc.
Build is running at https://builds.cask.co/browse/CDAP-DUT320-3.
Seems like the publisher and subscriber are factories rather than actual publisher/subscriber. Maybe refactor these two factories into one (or maybe put them into the `NotificationClient`).