[RazorTemplate] Factor and clean/fix generators

Move them from the old output generator override into node code
generator subclasses injected by a markup rewriter.

Fix misc bugs in the generators.
[RazorTemplate] Implement WriteAttribute[To] on generated base class
[RazorTemplate] Improve docs on generated base class
[RazorTemplate] Fix using helpers from helpers
[CSharpBinding] Interpret paths in output relative to mcs working directory

Not MD working directory.
[RazorTemplate] Write relative Unix paths in line directives

That way they're stable across OSes and machines, so debugging works
without regenerting the files.

causes some duplicate incorrect build errors in VS, and w/ MCS currently
only works in project root due to MCS bug,