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.
Fix safe-guard for last-insertion tracker.