[RDY] Prepare to rewrite the terminal UI

This follows #1565 and extracts some changes from a [huge commit](https://github.com/tarruda/neovim/commit/8026446ff2a9eec1ef26c8279feaec61b0a44da8) that completely rewrites the UI layer and removes all term.* files.

Libtickit/libtermkey are being used to implement the new terminal UI, so I add them as bunded dependencies in this PR
Can `kShellOptCooked` be removed from `ShellOpts` or is it still useful?