[Design] - Prototype of ResourceModel

/cc @yishaigalatzer @harshgMSFT 

Not included here:
- Model Metadata integration (e.g. retrieving the information like is a certain property required).
- Sample generation interface.
- Filter interface for customizing formatters (customization of the resource model to mimic what action filters can do for output formatting).
- Xml Documentation access.

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.
File a bug to at least cache the result of this. It might be mighty expensive to do it every time