Improvements to ML Text and Text Edit ctrls

Text addText can now take an optional position to insert added text at a
position.
Added a ton of selection based calls, like getting selection position,
replacing selected text, inserting text at the selection. Some of these
have also been removed/moved from the edit ctrl so it now just calls a
method from it's parent. Many of them have also been opened up as script
methods.

Added shift right/left keybinds to select text in an edit ctlr.