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.
Good summary of the issues, this area is all subject to change, and will be looked at from a high level at some point when we're closer to do with the product. For now I think what I did here make the most sense *with the current design of AD*

I also want to pick on something you said:

> I would expect the action descriptor to provide the information in an easy way to consume by this provider, rather than having to be inspecting method signatures or custom attributes in this provider. It's just a thought.

This isn't part of the design-intent, it's the opposite. The action descriptor should contain the information we need to execute, the api-explorer components try to make sense of it.