Add transpose-words, improve transpose-lines, add cursor tools helper, write tests

Let me know if you want any of this split out.

The next thing I plan to do with the cursor tools helper is make commands like forward-word and backward-word a little more emacsy - i.e. strings of punctuation shouldn't count as words. Other than that, hopefully this will make further emacs commands -- which are often based on things like `re-search-forward` and `skip-syntax-forward` -- a little easier to implement.

Oh yeah, and tests! :smiley: