Fix file in forward-declaration of `evil-visual-state-p'

--HG--
extra : rebase_source : 4ae030061b105f8ca47d5cb11f833eb27a3abafb
Change ex-binding "join" to "j[oin]"

This addresses #195.

--HG--
extra : rebase_source : 554a97701a4fb27ee6a6ef655b93b7a69fca6b88
Ensure region/visual-state is ignored in ex-state

When an operator is executed in ex-state, its range should *never* be
specified by the current region or visual selection. If the visual
selection should be used then the operator range should be specified
by '<,'> in the ex command line.

This patch ensures that `evil-operator-range' never takes the visual
selection into account when called in ex-state. Furthermore it ensures
that no region is activated when the region is determined by a motion.
This is important because only then the motion can define a range by
setting (possibly reactivating) the region. This is typically the case
for non-evil Emacs selection commands like `mark-whole-buffer'.

Another side effect of this is the global command `evil-ex-global'.
When the global command is executed, the region is set to match the
ex-range (so that non-evil operators that depend on the region can be
used as ex-commands). Unfortunately that region would also influence
the subsequent ex command that is executed by the global command on
each matching line, which may lead to unexpected results (see #195).
This change ensures that this region does not influence the subsequent
ex commands anymore.

This fixes #195.

--HG--
extra : rebase_source : 7a8cdc9bce2fc8a8ca1a6bb9e3a0d1b8840c0c9d
Set the region instead of visual selection for ex commands

We now set the region explicitly to match the ex-range when an ex
command is called. We do not activate visual state anymore.
Furthermore we set the region even if a visual selection is currently
active. This is because ex commands should always ignore the visual
selection, unless it is specified explicitly using register ranges
'<,'>.

--HG--
extra : rebase_source : 57e050703af287bdf3e0428dbd2c4575500f4b5f
Ensure `evil-repeat' returns to normal-state in case of errors

This addresses #216.
Ensure `evil-compile-subreplacment' returns "" instead of nil

This fixes #217.
Backout e40ba6482a86

This addresses #189.
Deactivate mark after ex command in original buffer

If the ex command changes the current buffer, `deactivate-mark' would
be called in the new instead of the original buffer.
Use `defining-kbd-macro' in `evil-record-macro'

The variable `evil-this-macro' is not sufficient for deciding whether
a macro es currently being recorded. This is because the macro
recording could be terminated by a different command or by an error.
Ensure that no macro is being recorded when a new one is started
Rethrow errors raised during execution of a keyboard macro

This informs the user with an error message about the termination of
the macro.
Add `evil-kbd-macro-suppress-motion-error' customization variable

This closes issue #183.
Run `make tests` with terminal window

Several test cases require the window environment to be initialized
properly. Running the test suite with `make tests` now always uses a
terminal window like `make term` but runs non-interactively otherwise.
Ensure emacs-state-buffer is alive when finishing emacs-state command

The command executed in emacs-state may have deleted the buffer. In
this case the attempt to select that buffer in
`evil-execute-in-emacs-state' will raise an error. We now ensure that
the buffer is still alive.

This fixes #176.