Improve Preserve() function by adding keepjumps

Use winsaveview()/winrestview() to save/restore cursor position instead of getpos()/setpos()
Use keepjumps so we don't add noise to the jumplist