Caching on multiple levels

A few levels of caching:
- FeedService caches results of its methods (DependenciesFor, NugetFor) according to depdency and mode passed as parameters
- implementors of INugetFeed cache FindLatest, Find results, including nulls returned by a given nuget feed

This result in a performance boost for projects with a quite complex dependency graph.