Introduce `isRendered` property across all view types

To aid in defensive coding against all phases of a view's lifecycle, an `isRendered` property is provided on each view instance.

The value is falsey if the view has not yet been rendered, or has been destroyed.
The value is true if the view is currently rendered.

CompositeView's `isRendered` state-tracking property is renamed `_isRendering` to indicate its internal-only nature, and to prevent collisions with the now-exposed `isRendered` property.

Sequencing of the `onBeforeRender` event, mutation of the view `isRendered` state, and `onRender` is consistent and spelled out explicitly in the tests.