Propogate additional compilation data from RoslynCompilationService

* Update CompilationFailedException to include path of file being compiled
* Pass in path being compiled to Rolsyn.
* Adding doc comments for compilation pieces

Fixes #869
just curious..does nullifying this generated code string before we add to the cache solve the issue...since I already can do the following with Razor host, so I am not too strong about this...

```
services.AddInstance<IMvcRazorHost>(new WrapperRazorHost(new MvcRazorHost(typeof(RazorPage).FullName)));

//--------------

public class WrapperRazorHost : IMvcRazorHost
{
    MvcRazorHost innerRazorHost;
    public WrapperRazorHost(MvcRazorHost innerRazorHost)
    {
        this.innerRazorHost = innerRazorHost;
    }

    public GeneratorResults GenerateCode(string rootRelativePath, Stream inputStream)
    {
        GeneratorResults results = innerRazorHost.GenerateCode(rootRelativePath, inputStream);

        using (StreamWriter sw = new StreamWriter(File.Create(
        string.Format(@"C:\RazorGeneratedFiles\{0}", Guid.NewGuid()))))
        {
            sw.Write(results.GeneratedCode);
        }

        return results;
    }
}
```