Add DesignTime code generation support for TagHelpers.

- We now generate a subset of the TagHelper runtime code during DesignTime. This enables users to see errors in the editor
- Added tests to validate design time code generation.
- Refactored runtime code generation tests (we now use a lot of their infrastructure for the design time pieces).

#208

/cc @dougbu 
not a reasonable way to correct #163.  the issue of conflicting attributes isn't a problem in the Razor file, certainly not on these hidden lines.  separate concerns and don't worry about that bug in this PR.  generate the code that's _needed_ at design time.