Use string name instead of file path when creating an indexed cache.
Don't use cache name as the key for in-memory caches, as it's not unique across builds.
Moved some caching classes around
Simplified the rules used by VisualStudioPlugin and set the group for some tasks.