gracefully handle state mutation for an unmounted component

model events can mutate component state while the component has not yet been rendered.  While this is probably not a common case for client code, it is more of an issue for server-side rendering.
getModel to use props.model or props.collection
bug fix: setModel to set model in state rather than props

and getModel will retrieve model from state