Extend constructor instead of initialize for base classes

See #281 and #294.

Override `constructor` of `BaseModel`, `BaseCollection`, `BaseView`,
`BaseApp` instead of `initialize`. Add a deprecation warning to
`postInitialize` in `BaseApp` and `BaseView`.

This should have zero behavioral changes.