[vim keymap] Treat empty line as word + clipping fixes

- Refactored core `moveToWord` logic to be cleaner, and prepare to possibly move clipping logic over
- Now treating empty lines as words for word navigation motions other than `e`, matching VIM
- Modified whitespace clipping logic to properly account for multiple whitespace lines and empty lines
- Lots of unit tests