fix auto balancing in `evil-window-delete` on last windows

If after the deletion of a window its parent would contain only one
child window, the subsequent call to `balance-windows` will raise an
error. Because this error is not critical (no rebalancing is required
with only one child left) we simply ignore the error.
modify `preceeding-sexp` and `pp-last-sexp` in motion state (fix #373)
fix repeat for `auto-complete`

The function `auto-complete` requires the same repeat-recording as
`ac-complete`.
Merge branch 'master' of https://git.gitorious.org/evil/evil
ensure C-o returns to previous state (fix #375)

The function `evil-execute-in-normal-state` used
`evil-change-to-previous-state`. However, if the command to be
executed in normal state changes the state itself (e.g. insert state
commands like i, A, o) would cause `evil-change-to-previous-state`
return the normal state instead of the state that was active when
`evil-execute-in-normal-state` was called.
make backward search more Vim compatible

If point is on a match but not on its first character, then backward
search in Vim finds this match. However, standard Emacs search
functions (in particular `re-search-backward`) only match if the end
of the match is *before* the starting point. This change modifies
Evil's search function so that it behaves like vim using an additional
search step.
implement `gn` and `gN` text objects (fix #327)

--HG--
extra : amend_source : 6396fea954134261a42d7172d593a1a0e6d3f326
make 'beginning-of-line and 'end-of-line regular errors

Make those error symbols analogously to 'beginning-of-buffer and
'end-of-buffer.

--HG--
extra : histedit_source : 67b1b570367dcdfe176a4f4488576aed6d8d0251
do not catch error in operator state

If the motion for an operator raises an error, the operator is
aborted. The old behaviour was to set some kind of default
motion. However, this usually leads to weird results, because that
default motion is often quite different from the intended motion.

The only exception are 'end-of-buffer and 'beginning-of-buffer, which
must be let through so that `evil-forward-char` can be used as a
(possibly failing) motion for some operators like `evil-substitute`.

--HG--
extra : histedit_source : 77001f0e8a4490fb8b0d8a10f682bed1003d936d%2C73efee4db00b3437f1982d64fd43ae20a5219a10
guard `evil-next-match` against search wrap (fix #327)

`evil-next-match` has to do a backward search first in order to
determine whether point is on a match, currently. However, this search
must not wrap at the buffer boundaries.

--HG--
extra : histedit_source : eadf059b589cc10775c6c69de15a3119e61e9db3
disable premature activation of some advises (fix #368)

Premature of advises of `display-buffer` and `switch-to-buffer` may
cause trouble in some Emacs versions. This change does not activate
the advises immediately but on definition. However, all advises are
activated when `evil-mode` is enabled anyway, so this should not cause
any troubles.
Do not copy original keymap when making overriding map

When calling `evil-make-overriding-map', do not specify 'copy because doing so
would cause KEYMAP been "frozen" in whatever state it is, i.e., any binding on
the original map after this point will not take effect. For example, if user
(or some other package) binds some key in `dired-mode-map' after Evil has been
loaded by using `(define-key dired-mode-map "SOME-KEY" 'SOME-COMMAND)' that
binding will never take effect because it is the copy of `dired-mode-map' rather
than the original map that is in use.
Merge branch 'master' of https://git.gitorious.org/evil/evil
set `evil-version` from current git/hg revision

--HG--
extra : amend_source : 1edb09cc9e0663717887d4aaec38c42aae916f0f
catch errors from external commands in version detection (fix #377)

Calling external commands may raise an error of the command does not
exist.
check for .git or .hg directory before setting version number (fix #378)

Otherwise the revision of some enclosing repository might be used.
replace state uses current input method
horizontal scroll commands take a numeric prefix argument
horizontal scroll commands are not repeatable with .
corrected documentation for evil-activate-input-method and evil-deactivate-input-method