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.
@yishaigalatzer , yes it was, we specifically talked about this, the requested content type is required for the formatter to take a decision. 
As for the type in the method name, I can remove it if its confusing, but its similar to what we have in outputformatter
```bool CanWriteResult(OutputFormatterContext context, MediaTypeHeaderValue contentType);``` there the Result is hidden in context.