Rewrite motion by word in insert-mode to use motion infrastructure

- Make motion utilities usable by insert utilties
- Use them in MoveCaretByWord instead of word utilities
- Adjust unit test scaffolding for API changes
- Allow insert mode to bypass virtualedit adjustment

Closes #1269.