Handle swaps at beginning and end of file
Typo
Place cursor on head when swapping backwards
Use a best-effort top_form search when g:sexp_maxlines == -1
Don't call s:move_to_top_bracket() if we don't have to

If g:sexp_maxlines == -1, we're counting element heads on the first
column as toplevel, so check current element head first.

Otherwise searching from toplevel strings and columns would trigger a
recursive searchpairpos()
--todo

Trying to factor out the various similar but slightly different loops
without closures is going to be a disaster for readability