Fixed: unfocused selection highlight colors were hard coded

Previously, the colors used for unfocused selection highlighting were hard coded. In Cocoa, they seem to be desaturations of the focused selection highlight colors.

This commit calculates the unfocused highlight colors from the focused colors.

It also removes some dangling commas.
Fixed: theme build failed

Previously CPTableView -_init was trying to reference a theme value, but that doesn't work because the theme creates a CPTableView and during that _init the theme value is not yet defined.

This commit uses lazy instantiation to avoid this problem.

Also, column selection was added to the CPDictionaryControllerTest to better visualize unfocused selection highlight colors.
New: Higher Contrast XCodeCapp menubar icons

This commit changes the current XCodeCapp menubar icon to use higher contrast colours, making it easier to see when XCC is working or idle.

Previously, the colours were black and dark green. With this change, the colours are black and orange (taken from the Cappuccino logo).

This commit includes the original PSD artwork as well as rendered versions of the icons in PNG format.
Fixed: Allow Interface Builder to set CPComboBox enabled state

Previously, the enabled state of a CPComboBox could not be set in Interface Builder.

This commit allows Interface Builder to set the enabled state of a CPComboBox.

A modified test in Manual/CPComboBoxTest is included. This test simply adds a new disabled combo box to an existing window, and then checks to see if it is disabled, printing a descriptive message to the Javascript console.
Merge pull request #1868 from ahankinson/fix-cpcombobox-ib-disable

Fixed: Allow Interface Builder to set CPComboBox enabled state
Fixed: nib2cib of combo box parsed enabled state twice.

It's sufficient to read the _enabled state in the superclass NSCell, no need to read it again in the subclass.

Refs #1868.
New: CGContextSetLineDash.
New: CPBezierPath setLineDash: and getLineDash:.

Also includes Cocoa compatible methods for completeness.
Test: dashed and phased CG strokes.
Fixed: Firefox dashed stroke phase support (theoretically).

This fix should in theory make the phase argument work in Firefox, although in Firefox 19.0.2 it doesn't seem to work. Hopefully it'll kick in in a future version of Firefox.
Fixed: CPBezierPath getLineDash: nil arguments, setLineDash:count:phase: argument style.

Previously, passing nil to the first or last argument of getLineDash:count:phase: would cause a crash.

With this change, these references are simply not written to if nil.

Previously, setLineDash:count:phase: took references for its arguments to match getLineDash:count:phase:. This was however wrong and is not what is done in Cocoa.

This fix makes the setLineDash:count:phase: calling convention the same as in Cocoa.
Fixed: stringByTrimmingCharactersInSet not removing characters at end

If a string had characters from the set at both the start and end,
the end trim was one character less than required.
Merge pull request #1869 from sherab/stringByTrimmingCharactersInSet-fix

Fixed: stringByTrimmingCharactersInSet not removing characters at end
Fixed: CPBezierPath getLineDash:phase: typo.
Docs: Out of date documentation for CPTableView

A small documentation change to reflect the updated viewForTableColumn:row:
Fixed: XCodeCapp adding duplicate files to Xcode project

Previously, XCC would indiscriminately add files to the Xcode project via the pbxprojModifier.py script. This resulted in duplicate references to a file.

This fix adds a check to see if the file is already included in the project's sourceGroup folder, and will return None if it is.

Fixes #1866
Fixed: CPArray did not allow binding to @count.

Previously, CPArray did not allow binding to the collection operator @count. In Cocoa this is allowed.

This commit allow the key path @count to be observed, so that @count can be bound to.

Formatting fixes as well.
Fixed: Infinite loop when a first responder has a nil superview

This bug appears only if a table view have been added to the window.

CPTableView observes first responder changes and moves up in the view
hierarchy to determine the edited data view. If for some reason, a
superview in the hierarchy was nil, we entered an infinite loop.

This commit adds guards to the recursive method that searches the data
view. Also added an early return when the fr changes to a view outside
the table.

Fixes #1875
Merge remote-tracking branch 'upstream/master' into CPTableView-viewForRow-infinite-loop
The FR can be a window, don't check if it's inside a table.