Change view enter hook to not mandate state

At the moment, `view.enter()` is invoked on the first draw. This doesn't work for cases where we don't want to hold onto and manage the view instance. For example, the dashboard view creates its widgets each draw to avoid needing to maintain a set of widget views.

The plan is to infer whether the view has been drawn depending on whether the view's element is empty or not.