Adding Api Explorer

Adds ApiExplorer to MVC and some new plumbing through action descriptors to share arbitrary data.

ApiExplorer produces a set of `ApiDescription` objects for each action that is *visible*. 
- `ApiDescription` maps to a specific HTTP verb - or all verbs if there is no restriction
- There can be multiple per action based on routes and verbs
- Includes data about formatters, content-types, parameters

Visibility and Group Name for an `ApiDescription` can be configured right now using an attribute, and using reflected model. The default is *not visible*. Working on a fluent API for simplifying this process in startup, but it will come as a separate workitem.

There's a number of things are **are not** included in this work item
- Providing access to user-written doc comments
- Full implementation of the URL part
- Full implementation of the parameter part

ApiExplorer shares a number of implementation characteristics with the `ActionDescriptor` provider pipeline
- The collection of `ApiDescription` is cached, lazy and versioning
- `ApiDescription` objects are produced by an `INestedProvider<>` pipeline
- We only produce them for our *default* `ReflectedActionDescriptor` objects.

The other new thing that's here is an arbitrary metadata mechanism for data that's associated with an AD, but not used for any execution details. I did the same on the `ApiDescription` which has serious need for a *add your framework-specific data here* concept.
Should this be tight to ReflectedActionDescriptor? I guess the answer that I'm going to get is that if you have an action descriptor provider that doesn't generate reflected action descriptors the answer is to write you own ApiDescriptionProvider but I would say we should take into account how much work that involves and if we could minimize the dependency on reflected action descriptor provider. Maybe that is pointing that we are missing important information on the action descriptor? I would expect the action descriptor to be the source of truth for any information we want to collect about the action and the api description to be a more suitable representation of that information for compsumption purposes. (generating swagger, json schema, etc.).