Many changes for the app to work with the new FeedSubscription model:

- added NotSubscribedError, which is raised when a user tries to perform an operation which requires to be subscribed, on a feed to which he's not subscribed.

- when a NotSubscribedError is bubbled to a controller, it returns a 404 HTTP response.

- SubscriptionsManager now always ensures that a user is subscribed to the feed (or not subscribed to it, in the case of the add_subscription method) before doing any operations, otherwise it raises an error.

- renaming of EntryState private methods triggered by ActiveRecord callbacks, for the sake of readability.

- added after_update callback to EntryState model. This callback decrements or increments the cached count of unread entries when a user marks an entry as read or unread, respectively.

- some User instance methods now receive full model instances (e.g. feed) instead of IDs (e.g. feed_id). This will probably be extended to all User methods in the near future.

- User callback methods delete all entry_states associated to a feed BEFORE the user is unsubscribed from the feed. Previously this was done after unsubscribingfrom the feed, but with the latest changes the app entered in a nasty callbacks loop in which it finally tried to decrement the unread entries count for a feed from which the user had already been unsubscribed. It's much more clean to delete entry_states just before unsubscribing.

- miscellaneous changes in tests to adapt to all the recent changes since introducing the FeedSubscription model.