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 use `Iterables.filter` to help:

```java
for (GetNotificationRunnable r : Iterables.filter(runnables, GetNotificationRunnable.class)) {
  builder.add(r.getNotification());
}
```