Got ctrl-s working in LargeTexts

Also, a bunch of refactoring of InputGadgets.  This was originally
intended to prep for Undo, but then I realized that ctrl-z already works
in the text fields, at least on Chrome.