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.
You can simplify this logic if you have a `Builder` constructor that takes a `NotificationFeed` as parameter:

```java
NotificationFeed.builder(NotificationFeed.fromId(id))
  .setDescription(feed == null ? null : feed.getDescription())
  .build();
```