IInputFormatter interface changes. 

1. Moving input formatting related classes to MVC Core.(for tests as well).
2. Cleaning up the IInputFormatter to the final version.
3. Updating the input formatters and the context to be compliant with the IInputFormatter interface.

- Not cleaning up TempInputFormatterProvider.
@dougbu  hmm .. the thing with model metadata is it is a LOT of data, and much of it might not be interesting for a formatter. I am willing to go with the current approach unless there is something that cannot be looked up from type. Let me know if you think otherwise 
@yishaigalatzer - any additional thoughts?