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
```C#
var malformedTagHelper = candidateChildren.OfType<TagHelperBlock>().First();