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.
Well, I can do something like:

```html
    <div><!--
     --><div>STUFF</div><!--
 --></div>
```

:confounded: