Changed hook timing, to make autosize work right

The autosize plugin (and therefore the LargeTextInputGadget) was often
failing to get the size correct when first loaded.  This turned out to
be due to timing: autosize() really shouldn't be called until the
textarea is hooked into the DOM and shown.

To support this, reworked the timing of hook().  Instead of happening as
soon as the QText gets added, the responsibility has been moved to any
code that adds content to the page.  As soon as that content is added
and visible, it should call InputGadgets.hookPendingGadgets().

Also, split the InputGadgets interface, to clarify what is specifically
there for each InputGadget to use.