IModel Extensions

- Refactored Model into IModel with extension methods for validation.
- This allows us to get rid of the Model interface that is being generated as part of the TypeScript model auto-generation.