foreignKeys directive

The `foreignKeys` directive is meant to be placed on input fields. When a document language is detected and a key map for the given language is defined, it automatically enables foreign key input in this text field.

This behaviour can also be overriden by passing a language attribute to set the input language to a fixed value.

The code inside `keyCapture` to handle this needs refactoring. Our modifier handling needs to be used there and we can also extract the general concept of multi-key bindings (e.g. hit `t` as prefix for commands you want to issue on a tree, like `t` followed by `d` to change the direction)

Not a top priority though.