Change undo patch to function provided by #vim.

It is intended to make movement predictable (always move to the next
line after regardless of changes). The j added to the sibgling mapping
should also move down a line predictably.
Add nohlsearch to vim UndoPatch().
Fix regex to match only the diff mode character.
Refactor which shouldn't change the logic...

...at all, but I'm battling gremlins here...
Add a normal! 0 on a hunch.

Seems to help, but isn't perfect still... WTF is going on?!