Update CSharpCompiler.cs

Return value is unused and restrictive. Far more logically, compiled
assembly now returned from Compile().
AppCompiler.cs updated

CSharpCompiler now returns the compiled assembly, we can use its
location property and avoid any resolution work.
AssemblyLocator.cs updated

AssemblyLocator will now test reference existence against a number of
possible file extensions before finally going to the GAC, throwing a
FileNotFound exception should it not find the reference there.
Refactoring: MethodCaptureDelegator.cs, AsyncPatterns.lua