BUG: updates to set renderer/enabled on seeds instead of just widget.

Moved enabling to  SetNthSeed.
Moved setting the renderer to PropagateMRMLToWidget, and added visibility update.
Swapped the check for in viewport, start as true and only set to false if outside of 0.0 - 1.0
Added more error checking for renderer and active camera.

Issue #1690
BUG: add an event to signal starting and finishing layout changes

When swapping in and out of compare view layouts, new 2D displayable managers get created
and are triggered to update from mrml (via setting the slice node) sometimes before the layout
has been completely finalised. This caused rendering crashes when managed widgets try to update
(usually when trying to render or to calculate a position). With this change, displayable managers
can skip updating/adding widgets if the scene returns true from IsLayoutChanging and then in
OnMRMLSceneEndLayoutChange they can do the necessary updates.

Note: when I tried putting the mrml scene state begin/end calls in the layout node, crashes still
occurred on MacOSX. If those crashes can be resolved, be sure to put checks that the MRML scene
is not null around the calls, as the layout tests don't add the layout node to a scene.

Added the LayoutChangeState and supporting methods to the MRML scene.
Added the StartLayoutChangeEvent and EndLayoutChangeEvent to the list of
events that the abstract displayable manager observes, and added OnMRMLSceneStartLayoutChange and
OnMRMLSceneEndLayoutChange to the abstract logic so that displayable managers can implement those
methods to respond to the layout finishing changes.

Issue #1690