support the :choose option for ListBox
detect potential infinite recursion when text is modified in a widget and exit early
allow a user to select or place the text caret in an InputBox
rename caret manipulation methods
Merge remote-tracking branch 'upstream/master'
Add shared context for SWT specs

Also improve encapsulation by exposing methods on the App
object so we don't have to reach inside it.
Improving encapsulation: Add #remove_listener to Swt::App
Don't dispose @real if it's nil (as in Slot)
Tag specs that fail on OS X, but succeed elsewhere
Update specs for shared context

Also, eliminate temporary test-double shims for allowing
differently-named doubles in shared specs
Remove commented-out code
Use app accessor consistently
Clean up specs a bit
Merge pull request #507 from shoes/refactor-swt-specs

Refactor swt specs to use a shared context
Merge branch 'master' of github.com:chuckremes/shoes4 into chuckremes-master
Fix edit_line_spec
Consolidate edit_box/line into InputBox

* embed classes sicne they are tiny
* tests were basically duplicates, merge them together
* make secret spect actually have an expectation
Modify change specs + specs. Maybe easier if a class where to be used as change listener instead of runnable block
Choose option specs for ListBox
Further consolidate edit_line/edit_box to InputBox, remove duplication

* also better backend error reporting