Add error mechanism for TagHelperParseTreeRewriter.

- Replaced customer facing Debug.Assert with a new error mechanism to surface errors to GenerateCode callers.
- The new mechanism is a general purpose way for `ISyntaxTreeRewriters` to add errors to the parsing phase.
- Added tests to validate `RazorError`s.

#174
It would be much nicer to pass in a `RewrittingContext` that contains all the info this method needs rather than have an context that is very narrow (specifically tracking errors) in its definition.