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.
The problem is, it's hard to tell if it's topic not exists vs topic doesn't have a leader yet in Kafka 0.8 (an there can always be some race). Given the current design of the notification, missing events before subscription started is ok, isn't it? (whatever starts mean as defined by the system, not by the time when user say subscribe. It's the nature of distributed system)