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
w.r.t. #162 note my concern in this comment is about _removing_ a user capability in this PR and worsening the tag helper unit test experience.  this PR eliminates the ability to test other TH capabilities w/o also testing `@addtaghelper`.  users are also losing the ability to provide `TagHelperDescriptor`s without the directive.
we shouldn't have to open #162 to restore something taken away in this PR.