Use Razor caching to drastically improve performance.

The speed of the API reference generation (and possibly some other things) can be improved drastically by using razor caching (https://razorengine.codeplex.com/wikipage?title=Quick%20Start%20Guide).

In my case I could reduce the time to produce the docs from 600 to 21 secs!
The first two commits improve the error messages (second is a bugfix).

Maybe you should not merge this patch and instead rewrite/remove the RazorRender class to only use caching (ie. currently the class is designed around the ProcessFile function, and my extensions are currently a bit error prone), and do the generation it in parallel again.

Note: The ProcessDirectory function in FSharp.Literate could also benefit from this when ProcessFileCache is used (and CompileTemplate is called at least once).
could you please remove this dead code. thanks