GUAC-810: Implement guacTextInput directive.

This change implements the guacTextInput directive, providing the same text input interface that Guacamole provided in recent releases, along with a locally-used guacKey directive for the convenient buttons in the text input UI.

This does *not* actually enable text input mode via the menu. That'll be a different PR.
Eh, I think it's alright to have it like this if there's a good reason for it.