[Design] Add TagHelperDescriptorResolver implementation.

- Added a basic TagHelperDescriptor creation mechanism to the TagHelperDescriptorResolver.
- Added an ITagHelperTypeResolver to be responsible for determining valid TagHelper types.

#99
Working on bringing the `TagHelperTypeResolver` into this PR and splitting the responsibilities better under the `TagHelperDescriptorResolver`.

Will be:
- `TagHelperDescriptorResolver`: Determines the format of the `lookupText`
- `TagHelperTypeResolver`: Takes a string assembly name and returns a list of valid `TagHelper` `Type`s
- `TagHelperDescriptorFactory` (static): Creates `TagHelperDescriptor`s from `Type`s

The `TagHelperDescriptorResolver` contains a `TagHelperTypeResolver` under the covers (just takes in an `ILibraryManager` to `new` it up) and calls into the `TagHelperDescriptorFactory` to convert `Type`s that were returned from the `TagHelperTypeResolver`.

As for where these `Type`s lie (`Razor`/`Razor.Runtime`) they definitely all lie in `Razor.Runtime`.  The `TagHelperTypeResolver` relies on the runtime type `TagHelper`, the `TagHelperDescriptorFactory` will rely on the `ContentBehaviorAttribute`, `TagNameAttribute` and `AttributeNameAttribute` all of which are user defined and require significant reflection to determine.  @yishaigalatzer @davidfowl and I were talking a while back about `Razor` containing reflection and we want to keep reflection out of core `Razor` as much as possible.