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.
There is no "some" implementations case in here. You new the supplier in the constructor of this class, meaning you have total control on what it returns.