Fix reset of `input-decode-map` when a terminal is deleted.

The variable `input-decode-map` is terminal local, so this binding is
only active if a frame is selected that is associated with that
specific terminal. However, when a terminal is being deleted then the
current frame is not necessarily associated with this terminal. So
resetting the variable from `delete-terminal-functions` hook sometimes
changed the variable associated with another frame/terminal (e.g. when
using several different terminals/frames with emacs client).

Now we do not reset the variable when a terminal is deleted (it's not
used anyway). If `evil-esc-mode` is disabled, we run through all
frames instead of all terminals now.

--HG--
extra : amend_source : 3e52c62beafae387c07572c0fb0de51957e779a0
Disable `transient-mark-mode` during interactive substitute.

Otherwise the region would be shown when using :s/../../c.
Use markers for identifying lines in `evil-ex-substitute` (fix #297).

The old implementation used line numbers to restrict the substitution
to a certain range of lines. This may not work if the replacement text
adds line breaks. The new implementation sets one marker at the
beginning of each line in the specified range before the substitution
is done. Then the substitution is performed in each line that has such
a marker. Since markers are moved on insertion of text, this will
correctly handle inserted line-breaks.
Ensure buffer is alive in `evil-ex-hl-do-update-highlight`.
Ensure buffer is alive in `evil-visual-update-x-selection`.
Only restrict ace-jump-mode-scope in visual and operator
Directly call ace-jump submodes.
Make `evil-ace-jump-char-mode' an inclusive motion.
Remove superfluous motion in evil-ace-jump-char-to-mode.
Remap vanilla ace jumps to evil's in motion-map.