Bind `delete-char` to [delete] in insert state

In Emacs 23 [delete] is remapped to \C-d, which is in turn bound to
`evil-shift-left-line`. Hence the delete-key does not work in insert
state as expected. This change binds [delete] directly to
`delete-char`.
Make `evil-insert-digraph` repeat by change (fix #282)

This function calls `read-key` internally, so it is not recorded
properly using keystrokes. However, record by change works.
Add `evil-middle-of-visual-line` command bound to `gm` (fix #284)
Save match-data within `evil-ex-search-update-pattern` (fix #288)

This function is called from change-hooks and these hooks are supposed
to preserve the match-data according to the Elisp manual.