TextHandle: ensure handles end up aligned with cursor rect

Since the handles are explixitly reparented higher up in the
hierarchy, we need to map the cursor rect of the edit to the
parent, rather that trying to do the calculations manually.
Otherwise we end up not taking all padding and margins into
account. We also need to align the text selection with the
physical position of the text, which is itself pixel-aligned.

Change-Id: I279fb69ffa18d58bf584aeafee0a84865364fcca
TextHandle: only commit IM upon starting a drag

As an optimization, only commit current IM composing
when the handle drag starts. While dragging, there
should be no ongoing IM anyway.

Change-Id: Ibc57a708652ce853426e42961ad9bb258d37ff3d
TextSelection: improve logic that sync handles with selection

Since property 'selectionPosition' that depends on 'selectionStart'
gets updated after the call to 'onSelectionStartChanged', we cannot
depend on it inside the handler. Moreover, since selectionStart
gets updated before cursorPosition when selecting a new selection, we
need to update both selectionHandle and cursorHandle in both cases
to ensure that we base the logic on the latest values.

This will fix two bugs that causes the handles to jump to wrong
positions (and even wrong lines) once the user starts dragging.

Change-Id: I74919abb4169439659bd42952d5d5e6020f33853
Add new private control 'EditMenu'

This control will be used as a part of the different
text edit controls for controlling how the edit menu
should work.

Change-Id: Id3ed5795111c37269fce62a97cf4d9bde1b5f6b3
Add EditMenu to input controls

Add EditMenu to TextArea, TextField, ComboBox and
SpinBox.

Change-Id: Ic2fed55c467dde65334006d252f4052430f3f40c
update example

Change-Id: Id7abcc298e7b5586f0b328f431feae3ee7015698
bigger handles

Change-Id: I9cd99c6930678262a6037ee29b678d141365892f
fixup handles

Change-Id: I9aac1d8961eea966366e2d4b558a186b4b68e8f0