FeedClient#fetch now raises an error if there's a problem during fetching, instead of just returning false. Errors raised there will be captured and handled at the controller level.

This change will also be done for other methods in models.

Also created two new error classes to be raised from FeedClient#fetch when certain error conditions happen.
Simplified FeedsController#refresh by moving a lot of the logic to a new User method, User.refresh_feed.
Moved the responsability of subscribing a user to a feed from the Feed#subscribe method (which has been removed) to User.subscribe. This leads to a more natural style in the controller:

	current_user.subscribe(url)

instead of:

	Feed.subscribe(current_user.id, url)

Also, fixed a bug in the error handling functions in FeedsController, FoldersController (the variable that holds the raised error was being referenced with the wrong name).
Moved the responsibility of unsubscribing a user from a feed from the Feed#unsubscribe method (which has been removed) to User.unsubscribe. This leads to a more natural style in the controller:

        current_user.unsubscribe(feed_id)

    instead of:

        Feed.unsubscribe(current_user.id, feed_id)