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.
BTW, when need to use a binary encoder to encode a json string? Can't you just return 

`Charsets.UTF_8.encode(GSON.toJson(message));`

?