add some helper fns

- app.DOM
- app.createFactory
- app.PropTypes

IMO none of these should be based on an app instance but we can discuss that during the future redo

This PR also adds validation for collection and model view props