Fixed: certain actions would edit a non-editable text field.
New: non-editable but selectable text fields can become the first responder.

Without this change, text fields with setEditable:NO but setSelectable:YES could not become the first responder, and so would not listen for copy: events.

This change allows selectable fields to become the first responder, taking advantage of the distinction between first responder and first key responder maintained internally in CPTextField - a merely selectable field does not become the first key responder.

Refs #1972.
Fixed: CPTextField copy: only worked for editable text fields.

A non-editable text field does not use an input field, and so does not track what is selected within it. We will use a workaround for now but in a CoreText based text field in the future we'd be likely to always have a correct selectedRange and be able to remove this hack.

Fixes #1972.
Test: extended copy and paste manual test.

This change adds selectable text fields and labels to the potential copy sources.

Refs #1972.
Fixed: certain editing actions allowed for disabled text fields.
New: selectable textfield Select All (Cmd-A, Ctrl-A) support.

Like in Cocoa, a non-editable but selectable text can now be clicked and all text can be selected with the Edit > Select All option or the associated keyboard equivalent. Just like in Cocoa this works on selectable text labels as well (text fields without a bezel).
New: triple click selectable text field to select all.

This matches Cocoa behaviour. Cocoa also supports double click to select the current word but we currently don't know what word is being clicked. In some browsers (e.g. Safari) this will work natively. Chrome on the other hand selects something random after double click on a non editable div.
Fixed: _CPImageAndTextView unguarded platform access.

This could cause issues during jake deploy or unit testing.
Ignore XCC .xcodeproj files in tests.