Add Set<NotificationState> to NotificationEntry to track things like New, Complete, and Favorited

https://issues.jasig.org/browse/NOTIFPLT-47

This changeset introduces the concept of states to Notification objects and refactors the FAVORITE feature to become a state.
Would `NotiicationState` s rather have a semantic state name ( `public final String getName()` ) rather than modeling state identity directly as the name of the implementing Java class?