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
Is there a reason to look for the end?