Modify TagHelperDescriptorResolver and dependencies to not throw.

- Modified existing tests that expected the resolvers to throw to no longer throw.
- Added new test to validate that unexpected errors that are thrown are also handled.
- Changed the TagHelperDescriptorResolver, TagHelperTypeResolver and AddOrRemoveTagHelperSpanVisitor to not throw when they're unable to understand the users directive lookup text.
- This involved utilizing the new ParserErrorSink to capture errors found during TagHelperDescriptor resolution.

#210 

/cc @pranavkm 
Removed all but the `TagHelperDirectiveDescriptor` internal ctor (used a lot).