Refs #1559. Autosave split view positions for frame size changes.

This covers the case where the whole split view is resized and the divider moves as a consequence. For example if the split view was made much smaller the fixed position of the divider previously autosaved might not even be inside of the split view frame anymore, and on restore from autosave that side of the split view might unexpectedly become collapsed.

The new behaviour also more closely matches Cocoa's, although there is still a slight difference in implementation.
Fixes #1559. Nested split view autosave and better override support.

Nested split views now correctly restore their divider positions by restoring "top down". E.g. a nesting split view is restored before the nested split view so that the nested split view has the correct frame size for the position it is restoring.

This commit also makes it easier to override autosave restores in a subclass or a controller's `viewDidLoad`. Now if `setPosition:ofDividerAtIndex:` is called after the split view's `initWithCoder:` has finished, but before the final autosave restore has occurred, the autosave restore is cancelled. This preserves whatever the modification the programmer intended to make instead of overwriting it with the autosaved position.

This commit also fixes a bug where an autosaved position would not be restored, or would be restored at an unexpected time, if `setFrameSize:` was not sent to the split view shortly after its `initWithCoder:`. (Such a `setFrameSize:` message is often sent due to a window `setFullPlatformWindow:` call in `AppController.j`'s `awakeFromCib`, but it's not necessarily sent.)
Refs #1558. Better ivar name and type.
Merge pull request #1592 from slevenbits/splitview-autosave-improvement

Improve split view autosave.
Added CPArray -indexesOfObjectPassingTest methods
Merge pull request #1595 from slevenbits/array-filters

Added CPArray -indexesOfObjectPassingTest methods
Added missing @
Merge pull request #1596 from slevenbits/cptableview-typos

Added missing @
Make the default grid color in IB show correctly in CPTableView

Currently #888888 is being used as the default, mainly because NSColor.j doesn't recognize the "gridColor" named color, and the cached color in the .xib is #888888 for some reason. Actually the default grid color is #CCCCCC.
Fixed the method names
Merge pull request #1598 from slevenbits/array-filters-fix

Fixed the method names committed in 0f5a6b4e5ef00a2a4987a712014fa405845a57e4
Fixed CPString -hasSuffix docs
Refs #1559. Fix split view autosave test.
Annotate indexesOfObjectsPassingTest: function signature.
Fix wrong change is sent to observer when top level object is changed.

When you change the top level object, observer MUST receive value
for the key path of the previous top level object as old and
value for the key path of the new top level object as new.
Annotate indexOfObject methods, use "index" instead of "idx"
Make Alexander happy.  ;-)
Merge pull request #1597 from slevenbits/cptableview-grid

Make the default grid color in IB show correctly in CPTableView.

- Changed the default grid color from #dce0e2 to #ccc.
- Fixed NSColor to recognize the named color "gridColor" and set it to #ccc.
- NSTableView always saves the grid color from IB.
CPComboBox and CPTextField enhancements

- Full Cocoa-compliant implementation of CPComboBox and CPComboBoxDelegate.

- Better focus ring for CPTextField and all subclasses.

- CPTextField and its subclasses draw disabled contents differently, per Cocoa.
Merge pull request #1599 from slevenbits/kvo-fix

Wrong key path and change send to the observer