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.
Exposing the internal details (fully-qualified class name) to external systems that may provide notification feeds strikes me as brittle and risky.  I suggest instead that the serialization/deserialization of the state type be a name that gets mapped internally to the implementing class by a property file or something.  That way the implementation is free to change without impacting external systems or databases since this information will likely get stored in a database.