ui_mode is per-buffer
Visual modes - char, line and column
Motions take a non-const buffer
Partial visual delete, change, etc
Partial interface tidy-up for motion code