Remove FeedCache

We don't need to manage feed cache ourselves anymore.
NSFetchedResultsController efficiently loads a small batch
of news feed at a time as the user scrolls through the list.
It also listens for updates made to Feed model in Core Data
and notifies its delegate when those updates happen. As a result,
we don't need to coordinate the communication between database
update and feed list view controller ourselves through series
of abstractions.

Note: The fetchFeeds API in FeedManager has changed slightly
to not return cached feeds immediately. All this method does now
is initiate retrieval of feeds from a remote server. We let the
NSFetchedResultsController load locally saved Feed objects
from Core Data while the latest feeds are being fetched from the
server. As a result, the user is presented with previously fetched
feeds immediately when she goes to the feeds list view. This approach
helps us provide a good user experience by not forcing users to
wait until a network request is complete to see any feed.