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.
Thought about this again and checked web api, 
reverted to doing ```supportedMediaType.IsSubsetOf(requestContentType)``` instead of ```supportedMediaType.IsSubsetOf(requestContentType)```. (that does not has the downside of ignoring if the request content type is something like */*).