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