Cache file info access in viewengine

Move compilation and VirtualPathViewFactory to be singletons
And cache access to files.

The cache time is controlled by MVC options.

The cache is implemented in the ExpiringFileInfoCache.cs

Total improvement of about 10% in RPS
Actually the feedback is the opposite, need to add XML Docs to all other methods.