Strict Type checks are here!

- Added type checks for nested fields of Model or Collection types.
Either subclass of specified class or plain object/array are allowed.
- Fixed small bug: Collection now have NestedTypes.Model as default
model.