Fold conditions in `evil-forward-char'

Code cleanup.
Make `evil-backward-char' analogous to `evil-forward-char'

Both functions now handle the newline character at the end of a
non-empty line analogously (formerly the first one called
`evil-adjust-cursor' that may do other things).
Add `evil-with-adjust-cursor' macro

Several motions wrap their code within this macro instead of calling
`evil-adjust-cursor'. This macro works by narrowing the buffer to (1-
(point-max)) if the buffer ends in a newline character. Thus the
motion does not reach the original (point-max) at all. This has the
advantage that the cursor has not to be moved back the correct column
in the previous line. This addresses issue #119.
Merge master
Merge master
Wrap motions implicitly within `evil-with-adjust-cursor'

This restricts the possible goal positions of each motion to all
*real* lines. If the buffer ends in a newline character the position
(point-max) does not count as possible position. The restriction does
not happen in operator state or when (point) is already at (point-max)
before the motion is executed.
Merge master
Be aware of empty buffers in `evil-with-adjust-cursor'

This is achieved by replacing `narrow-to-region' with `evil-narrow',
which handles the empty-buffer case correctly.
Non-interactive `evil-delete' does not place point

When using the operator `evil-delete' programmatically it does not
adjust the cursor to the first non-blank character. This makes it
behavior more predictable and removes reliance on the behavior of
`evil-first-non-blank'.
Add `evil-buffer-regexps' customization variable

This is a generalization of commit 3474346, which allows Evil's
initialization to depend on a regular expression matched against
the buffer's name. This is better than disabling Evil whenever
`load-in-progress' is t, as the latter breaks loading of files
through a desktop file at Emacs boot time.
Let ":bd!" kill processes

If the buffer has any processes associated with it, then ":bd" will
ask to terminate them, while ":bd!" will do so without warning.
Fix `evil-visual-restore' after d408f48

Ensure "gv" restores the selection properly, also after applying
an operator to it.
Make :quit and friends close the current emacsclient

If a frame is opened by a new emacsclient, a :quit command (or one of
its variants :qa, :wq or :wqa) should close this client if that frame
is the one being closed. This is done by calling
`save-buffers-kill-terminal' where appropriate or examining the value
of the 'client frame parameter. This closes #143.
Merge lyro-adjust-cursor
Add transformation function for vim-style regexp

The new function `evil-transform-regexp' converts Vim-style backslash
codes to the corresponding character classes, e.g., \d is transformed
to [[:digit:]]. The following codes are currently supported: d, D, s,
S, x, X, o, O, a, A, l, L, u, U. The codes w and W are the same as in
Emacs so they are supported automatically. Furthermore the Emacs code
\s is overwritten to be interpreted as [[:space:]]. As a compromise,
the new code \y is transformed to the Emacs \s and can be used in
Vim-style regular expression in place of the Emacs \s.
Support vim-style regexp in interactive search and substitute

Vim-style regular expressions can be enabled using the
`evil-ex-search-vim-style-regexp' customization variable (default is
nil). If set to non-nil, the interactive search and the ex substitute
command support Vim-style backslash codes. Note that the isearch
search module always uses plain Emacs regular expressions because it
is backed by the Emacs isearch package. If one wants to use vim-style
regexp for interactive search the evil built in search module must be
enabled using the `evil-search-module' customization variable. This
closes #141.
Extract replacement code from `evil-transform-regexp' in own function

The code that performs the replacement of backslash codes is now
contained in its own function `evil-transform-regexp', the old
function `evil-transform-regexp' is being renamed to
`evil-transform-vim-style-regexp' and calls `evil-transform-regexp'.
This allows to use the backslash replacement in other situations, too.
Use `replace-regexp-in-string' in `evil-transform-regexp'

Using the internal function for repeated replacement improves
robustness and readability of the code.
Use `evil-transform-regexp' in `evil-ex-regex-without-case'
Interpret \t,\n,\r in search pattern

Those are replaced by their corresponding control characters as usual.
This addresses #140.