fix to enables the startup loader to continue if dynamically loaded
Added test
Merge branch 'master' of git://github.com/cappuccino/cappuccino into afterDocumentLoadFix
updated background image for sample test file
a suggested fix for CPArrayController selection binding failure in retrieving initial selection values
selectNone: is not part of the NSTableView API, not sure why we need it since it is the same as deselectAll:
updated the testfile
CGContext fixes/enhancements

- NEW: Retrieve the underlying Image element from a CPImage with -image.
- NEW: You can now render any arbitrary drawing to a pattern context and use that as a fill or stroke pattern. See CGContextCreatePatternContext, CGContextSetFillPattern and CGContextSetStrokePattern. Works in all canvas-enabled browsers, including IE 9+.
- NEW: An example of using a custom rendered pattern is in Tests/Manual/PatternFillTest.
- NEW: Test if a CPImage is a single image (vs. three/nine part) with -isSingleImage.
- FIXED: With canvas, we have to track ourselves whether the context has a path or not.
- FIXED: All shapes except rects may not be added to a path with no context. If you attempt to do so, an error is logged.
- FIXED: CGPath was not setting the start and current point correctly in some cases.
- FIXED: CGContextAddPath was not moving to the path's start point at the beginning.
- FIXED: Removed superfluous CGContextClosePath commands, fixed some drawing sequences.
- FIXED: Misc. formatting.

Sorry, these changes are canvas only (including IE 9+)! I am not going to spend the time to port these fixes to VML (IE 8).
Font metrics calculations were broken, now fixed.

Updated FontMetricsExplorer application to modernize html files.
Fixes #1685: CPToolbar calls incorrect notification method

This fix corrects the call in CPToolbar _setWindow to `removeObserver:name:object`. Before, this was calling the non-existent `removeObserver:object`, which would raise an exception.

This was fixed by @schipmolder.
Added correct notification name.
Merge pull request #1497 from BlairDuncan/afterDocumentLoadFix

fix to enables the startup loader to continue if dynamically loaded
Faster CPMutableArray removeObjectIdenticalTo:.

About 6-8X speedup by skipping all the `indexOfObjectIdenticalTo:` calls and going straight to JS `indexOf`.
Fixes #829. Improve - CPView removeFromSuperview performance.

In the modified test described in #829 performance improves by at least 30% and that's with a significant addSubview: component diluting the test.

This change should improve outline and table view performance.
Fix for issue #1357
Fixed: eliminate jake deploy warnings from default apps in 0.9.7.
Fixed: decoding a CPClipView could result in duplicate subviews.

This bug used to be concealed by the fact that we called [superview removeObject:X] when replacing a subview, which caused all duplicates to be removed.

Without this fix, the call to setDocumentView in CPClipView's decoding would try to add the document view as a subview. But when decoding, the clip view is already in the decoded list of subviews. Normally adding a subview twice would just move it to the end of the list of subviews, but this only works for fully decoded subviews where superview is not nil. Since we're in the middle of decoding there's no guarantee superview is set yet.

This fix avoids calling addSubview:.
Crash early in debug mode if addSubview: is called with a not fully decoded view.

If a view to be added is already a subview, but doesn't yet "know it" due to being only partially decoded, a corrupted view hierarchy with duplicate views would be set up, which is very hard to debug.
Move special per class nib2cib processing to the classes themselves in `awakeFromNib`.

Having class specific code in the class makes more sense, and this will make it easier to add more class specific transformations.
Fixes #1409. Improve CPTabView decoding to fix tab selection errors.

This is an improved fix to the corrupted tab view state bug partially addressed by 0f347be.

Without either fix, NSTabView is converted to a CPTabView where tab view item views are subviews of the NSTabView, while in Cappuccino the selected view item is supposed to be a subview of a CPBox.

Without this fix, CPTabView decoding called addSubview: in initWithCoder: which can cause the superview of a view to become set, only to later be overwritten when the superview ivar is decoded.

This fix removes the tab item view as a subview from the tab view before encoding it in nib2cib, and then makes sure not to call addSubview: while still in the initWithCoder stage, but rather later in awakeFromCib.