Updating Associated Metadata Provider to follow the existing pattern.

cc @dougbu @rynowak 
```if feel strongly that IModelNameProvider is broken. it has a poor name and a similarly poorly-named Name property.```
There is a reason why it was named that way. The ```IModelNameProvider``` is used by metadata providing attributes like ```ModelBinder``` and ```FromUri```  which expose a name property that happens to be used as a prefix instead of model name. 
We can rename ```IModelNameProvider``` to ```IModelNamePrefixProvider``` like so 
```
public interface IModelNamePrefixProvider
    {
        /// <summary>
        /// Model name.
        /// </summary>
        string Prefix { get; }
    }
```
it will be closer to what it is used for and then special attributes can base off their name property on ```IModelNamePrefixProvider```'s ```Prefix``` property.

@rynowak  do you see any problems with the name?