Refactoring the ControllerActionDescriptorProvider

This change will remove IActionDiscoveryConventions, and merges the functionality contained therein into a new extensibility point that discovers and creates `ControllerModel` instances.

Should these be constants in a publicly accessible type? View engines look these up, so it might be nice to be able to reference a constant.