++todo
Change s:nearest_element_terminal() to gate movement

Element-wise movement in normal mode now no longer climbs levels to the
parent list. This behaviour makes use of the element-wise motions feel
dangerous since it is not easy to dive back into a child list.

Unfortunately, this behaviour underlies many functions, so we will have
to fix them one by one.
[bounded-movement] Fix selection swapping

Happily, the "fix" is actually just what I should have written in the
first place, regardless of the change to s:nearest_element_terminal
Re-implement sexp#move_to_adjacent_element

Count handling is moved to the function itself, as well as the decision
to make the selection inclusive.
Merge branch 'bounded-elementwise-movement'

This branch changes the behaviour of element-wise movement: moving
element-wise never climbs to a parent compound form.

This allows the element-wise movement motions to be used more freely
without fear of accidentally climbing out of the current lexical scope.

* bounded-elementwise-movement:
  Re-implement sexp#move_to_adjacent_element
  [bounded-movement] Fix selection swapping
  Change s:nearest_element_terminal() to gate movement
Ignore counts in opmode ( and ) motions

All changes done with a count leave the current form unbalanced, and
it's not clear what non-changing operations would benefit from having a
count that is not handled by sexp_outer_list.
Fix inclusive <M-w> case when elem is single char

e.g.
        [|a]

With cursor at |, d<M-w> would fail.
++todo
Document new behaviour of element-wise motions
Fix typo