Ctrl+T in insert mode with virtual space

Thanks for merging my previous pull request for `Ctrl+T` in insert mode!  But... please bear with me as I learn, `Ctrl+T` in insert mode still doesn't work in all cases.

I've added three new insert mode unit tests that would fail in the current branch:

* Shifting right from virtual space
* Shifting right with mixed real and virtual space
* Shifting right to mixed tabs and spaces

I also refactored the shift left and shift right operations to use a common member since the logic is so similar.