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.
I suggest providing a more descriptive message such as "Invalid class name specified in JSON file line xxx (if you can get it or if not already displayed by error message list). Unable to instantiate class " + clazz.  This could be encountered by users who aren't familiar with the implementation details.