Overhaul and add tests to keymap code

Overhaul the keymap code and add a bunch of tests.
The main new feature is the introduction of the KeyAlias type,
which allows for lazy redirection as opposed to the eager
redirection originally implemented. At some point down the road
the redirection scheme changed to a hybrid scheme where the
redirection would look in all the layers passed to `keymap`
at the same time (rather than just the layer it is specified at
and any layers below it). Unfortunately this is also quite
incompatible with adding new keymaps dynamically on top of the
existing layer. Since this behavior is useful for taking care of
canonicalization of escape sequences, the KeyAlias type is added
to support this use case. A key sequence mapped to a KeyAlias("ZZZ")
will behave as if ZZZ had been typed instead.
Backspace is overriden in the mode keymap, so needs a KeyAlias
Fix conflict post process code
Make keymap optional with k as default
need a second $ for git status in release-candidate
(cherry picked from commit a0d3d9376bfd80070a95bfccbbd0f4144293b9bf)

rst fixes

(cherry picked from commit bb020fa602e4bb4db6ff15ab991c523dbad7fd85)
Merge pull request #9397 from JuliaLang/kf/keymap

Overhaul and add tests to keymap code
added docs for contains function
Explain error in `contains` doc
Correcting a typo.

Should be `'o'` instead of `'0'`.
Merge branch 'master' of github.com:JuliaLang/julia into julia-translations

Update resources
Merge pull request #9460 from Ismael-VC/patch-1

Correcting a typo.
Merge branch 'master' of github.com:JuliaLang/julia into julia-translations

Update resources
updating resources