[Design] - Prototype of ResourceModel

/cc @yishaigalatzer @harshgMSFT 

Not included here:
- Model Metadata integration
- Sample generation interface
- Filter interface for customizing formatters

Where possible I made decisions that are similar to webapi api explorer. See comments in the code for context on specific decision points and open questions.
This is a new extensibility point for user-defined formatters that handle a specific type. Similar to webapi legacy design.

Users implementing a formatter don't have to write any code if they extend `OutputFormatter` and don't care about type.