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 
wrong place to depend on that compilation check.  in almost all cases, the user editing a Razor file and using tag helpers is different from the user writing an `ITagHelper` implementation.  in any case, extend the `TagHelperDescriptorResolver` to resolve only classes w/ a parameterless constructor if you want to notify the tag helper author of this issue.