[WIP] Property types validation

When parsing model and you get an incorrect value type, you want to fail immediately rather than crashing at some random point during runtime with "does not respond to a selector".
If general idea seems valid, I'd like to hear opinions on several questions:
* Being able to specify `MTLParsingOptions` to be able to adjust behavior when validation fails: i.e. desired behavior might include failing immediately and returning `nil` as a result of parsing or just skipping the property in continue parsing.
* Adding api for `MTLValueTransformer` allowing to return a validation error if needed (I think I saw something similar in one of the branches)

Looking forward for a feedback!

- [x] Types validation for model properties
- [x] Opt-in protocol to trigger strict types validation
- [ ] Ability to pass parsing parameters when instantiating model directly or via adapters
- [ ] Ability to have different validation rules for different parsing contexts