Misc ListBox and InputBox fixes and extensions

* Add support for the ":choose" option when creating a ListBox

* Detect and short-circuit potential infinite recursion when setting EditLine text from within an EditLine callback

* Add a new call to the InputBox API to allow the user to programmatically select text in an InputBox or place the text caret at a specific place within the existing text.

I tried creating a spec to test each one of these things but the mocking has thrown me for a loop. I am still willing to add specs but I need help from someone who understand the test layout better.