Fixed: selectable text deselected when a menu was clicked.

This made it impossible to select some (non-editable) text, and then to click a Cappuccino menu option like Edit > Copy. Upon the click of Edit, the just selected text would be lost.

This was caused by some very mysterious code focusing and blurring an input every time propagation was stopped. Since it wasn't documented, the snippet was just removed for now. If it turns out it was useful we'll need to add it back and make sure it's not called in this scenario (while documenting it properly).

Refs #1964.
Fixed: copy and paste by Cappuccino Edit menu not working.

When the Edit menu is used to cut or to paste, Cappuccino needs to do all the work of making it happen. But the current code relied on the browser doing part of the work.

This fix adds new state so CPTextField can know if it should expect the browser to do some of the work or not.

Refs #1964.
Return false for mouse handler if propagation is stopped.

Refs #1964.
Fixed: - CPTextField deleteBackward: required selection.

According to the spec, deleteBackward: should remove the element before the insertion point if there is no selection (e.g. actually delete backwards).
New: Edit > Delete menu item support for text fields.

This menu item deletes the current selection if there is one.

Refs #1964.
New: CPTextField deleteForward:.

This enables delete forward to be activated through action connections to text fields (or the first responder).
Clean up.
New: grey out Edit menu non applicable items for text fields.

Copy, cut and delete are now disabled if there's no selection in the active text field. Cut, paste and delete are greyed out if the text field is not editable (a label).

Refs #1964.
Fixed: missing imports.
Simplify.