Add @addtaghelper directive. 

- Also added some infrastructure pieces for it such as the ITagHelperDescriptorResolver and the default implementation TagHelperDescriptorResolver which will be filled out in a later commit.
- Reworked some extensibility points to allow accessibility of the descriptor resolvers per offline discussions.
- Fixed existing tests to work with new RazorParser.
- Validated directive syntax tree creation, errors and code generation.

#111
this doesn't seem to line up with `CSharpDesignTimeHelpersVisitor` changes.  shouldn't projection be into `string __tagHelperDirectiveSyntaxHelper = |;` to help user understand they need to type in the quotation marks?
alternative is to disallow surrounding quotation marks here and leave design-time projection as-is.