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.