Support \=@<char> to replace by register content (fix #302).

\= is more general in Vim because it allows general commands to be
executed. However, Evil does not support Vim's language but is based
on Emacs Lisp (the , magic character can be used to replace by
arbitrary Lisp code). Therefore Evil only supports a very restricted
usage of \= namely \=@ to replace by register content.
Refactor substitute code (fix #314).

The new functions `evil-ex-make-search-pattern` and
`evil-ex-make-substitute-pattern` are responsible to create patterns
w.r.t. to flags and global options. Ensure that all replacement
functions respect `case-replace` and `case-fold-search`, both
variables are set according to the pattern's case flags.
Merge fix for #314
Enable default major-mode in commands creating new buffers.

The functions `evil-window-new` and `evil-window-vnew` now call the
default major-mode function instead of unconditionally enabling evil.
Only modify default major mode if it is fundamental-mode (fix #318).

Evil mode is not properly initialized in fundamental-mode and needs a
special fix for this situation. However, if the default major mode is
set to something else, this special handling is not required and
should not be done, because it resets the major-mode to
fundamental-mode afterwards.
Do not mark undo/redo as motions but as non-repeatable (fix #308).

Declaring those functions as motions causes the region to be *not* set
up to match the visual selection before the command is run (because
motions do not care for the region but for the correct position of
point). However, undo/redo may be used with an active region, so it is
better to declare them as normal commands that are called with the
correct region but may not be repeated.
Make ace-jump char motions behave analogously to find-char motions (fix #315).

Both motions (`evil-ace-jump-char-mode` and
`evil-ace-jump-char-to-mode`) are now inclusive if the target is after
the start position and exclusive if it is before the start
position. Furthermore, `evil-ace-jump-char-to-mode` moves point not
directly on the target character but one position before (if forward
jump) or after (if backward jump) the target character. This makes
both motions behave similarly to the standard find-char motions
f,F,t,T. However, operators used with these motions may not be
repeated because the target character is highly context dependent and
there is no known reliable way to reproduce such a motion.
Merge fix for #315.
Remap cursor keys and return correctly in undo-tree selection mode (fix #311).
Add integration code for `company`.

--HG--
extra : amend_source : 308ba30929a2fa61587f7437874d5471016116f2
Record executed macro as single undo (fix #321).
Do not bind to undo-tree functions explicitly.

If undo-tree is enabled, it remaps `undo` and `redo` to the
corresponding undo-tree functions. Hence `u` and `C-r` both use
undo-tree automatically if enabled. Furthermore, both keys bind to the
standard `undo` and `redo` functions (with `redo.el` or `redo+.el`) if
undo-tree is disabled. Note that this makes Evil use the correct
bindings on a per-buffer basis, i.e., if undo-tree is enabled only in
few buffers.
Support character marker ranges in ex (fix #322, re #239).

The ex parser now supports ranges with backtick marks that generate
character ranges. The range is inclusive unless exclusive visual state
is active. When started from visual character state, the default range
uses backticks if `evil-ex-visual-char-range` is non-nil, otherwise
the standard line ranges are used.