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.
Consider adding a user-defined content-type here. Ex: application/hal+json. It should be possible to use our formatters with custom content types. If this is significant work then maybe address in a follow up.