Defered render

Updates `setModel`/`setCollection` as well as the `model` and `collection` fields to defer rendering until `setView`, a parent is rendered, or explicitly rendered.

The `render` flag now operates as a trilean:
- `undefined`: Render if the view has already been rendered. Effectively overwrite if written
- `true`: Always render
- `false`: Never render

This change lets us defer HTML generation until the point that we know that we are actually going to use it.