Refactoring of strict type checks.

Improved type checking:
- replaced type exceptions with console.error logs
- added default validate function to check for undeclared attributes
assignments
- moved type checks to Model.set and Collection.set
- added Collection.isValid  method
- optimized Model.typeCast method