Added EntryState model.

This model represents the state in which a given feed entry is for a given user: read or unread.

Entries will be in the unread state when fetched from the feed server, and they will become read automatically when a user reads them. A user will also be able to mark entries as read or unread manually.

By default the view will show unread entries to the user, unless he manually indicates he wants to see all entries.
A callback is added to the Entry method that causes each new entry to be marked as unread for all users subscribed to its feed, when first saving it in the database.
Better organization of the User model unit tests, grouping related tests in Rspec contexts.
Added validation to ensure that a given entry has at most one state (read or unread) for a given user. Added callbacks to manage entry states when a user subscribes or unsubscribes from a feed.

When a user subscribes to a feed, EntryState instances are saved for each feed entry, to indicate that all those entries are unread for the user.

Conversely when a user unsubscribes from a feed, all EntryState instances for entries of that feed and belonging to that user are deleted; this means that the app does not store read/unread entries information for feeds from which the user has unsubscribed.