Add release and retain

Adds:

- `retain` method
- `release` method which will call destroy if there is nothing left retaining the view

Removes:

- `destroy: false` option from `setView`, use `view.retain()` instead
- `children: false` option from `destroy`, use `view.retain()` instead