Improves the view statechart unit tests.
Removes _isHiddenBySelf and _isHiddenByAncestor out of production builds.
Also fixes up state inconsistencies around hiding and showing parent views in different scenarios.
Simplifies the code by making effective use of _callOnChildViews and improves the performance of _callOnChildViews.
Tidies code.
Fixes the implementation of do destroy layer in view statechart to also clear all descendants' references to the shared layer.  Includes unit test.
Optiimizes destroy of SC.View.  This is a slow part of the view lifecycle, due to recursively running through every descendant and notifying willRemoveFromParent, didRemoveFromParent, willRemoveChild, didRemoveChild as well as searching through and clearing all of the childViews arrays.  Instead, we destroy the topmost parent, including detaching and destroying the layer and clearing all references to the views from SC.View.views, but then we defer orphaning the childViews for the newly destroyed parent until the next run loop.  This cuts the destroy time almost in half for the average view tree.