Adds unit test highlighting regression in SC.ContainerView if destroying before setting nowShowing.
Fixes regression where calling destroy on SC.ContainerView before it has had a nowShowing property would throw an exception.  This was because the internal array to clean up in destroy is lazily created.
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.
Fixes problems with SC.MenuPane.

- it will now observe the items array for changes to its contents, so if the items array object itself doesn't change we can still update the menu items
- it no longer shares the default items array object with all instances of the menu pane
- it no longer shares the internal key equivalents hash object with all instances of the menu pane
- removes unused variables
- fully deprecates support for an items object to be an array
- improves jsdocs
Fixes bug when calling animate from within the invokeNext queue on a view that is already being animated in the same queue, but has not yet been modified.  Includes unit test.
Fixes memory leak in SC.MenuPane.  It failed to destroy its internal menu view and that view's child views when the menu pane was destroyed.  It also failed to remove the internal menu view reference.

Includes unit test.
Fixes typo in warning message and makes SC.View:createChildViews behave as the warning indicates. If there is an invalid childView it will be ignored, which includes removing it from the childView's array so further iterations over childViews (eg. SC.View:awake) don't throw exceptions.

- Also removes unnecessary conditional around the main body of the function.
- Includes extra unit test.
- Fixes incorrect calculation of the borderFrame property in SC.View.  It used the wrong names for the properties and didn't work at all.
- Fixes frame failing to recompute if the border property of the layout is adjusted.  Previously, layoutDidChange only checked for changes to the width or height layout properties to indicate that the frame has changed.
- Adds unit tests that validate the frame and borderFrame when using border layouts.
- Adds _effectiveBorderFor() function, which reduces the amount of repeated code to determine the border of any particular side
- Also tidies the layout.js file a la jshint.
Merge remote-tracking branch 'upstream/master'
Merged from upstream