Changes missing child view error to a warning, since we don't actually throw an exception.  Also pulls the warning out of production code.
Fixes SC.GridView's calculation of max height when its width changes.  Previously, as the grid view was compressed or expanded, the layout of the grid view (maxHeight) would not update, which meant that scroll views would not adjust their scroll heights appropriately.

This removes the computeLayout() call from the reloadIfNeeded method in SC.CollectionView.  Since only certain events should require the layout to change (i.e. itemsPerRow changes in SC.GridView, row heights change in SC.ListView or the content length changes), we don't need to repeatedly run the computeLayout code every time we scroll a little bit.

Adds adjustLayout method to SC.CollectionView which can be used with invokeOnce to adjust the view's layout when one of the previously mentioned events occurs.
Tidies SC.ScrollView wrt jshint.  Removes several declared but unused variables.
Adds the content view layer observer to the original content.  Previously, only when the content view changed would the new content view be observed for layer changes.
Fixes SC.ScrollView's always updating scroller visibility and maximum scroll offsets.  The code was supposed to only go through the process of determining scroller visibility and dimensions when forced (due to the scroll view's frame changing or when the content's cached width and height matches the current width and height of the content).  The code assumed that the first argument would normally be undefined, but because the function is an observer method, the first argument is always the target of the observer.  Therefore, the fast path conditional would always be false.

This changes the code to instead clear out the cached content width and height before calling contentViewFrameDidChange, which will allow the code to run completely.  Subsequent calls from the observed changes will be able to exit early based on the cached values.