Fix n gg selection

With this, you can you use `n-gg` to select to the nth line.
And I add the support for characterwise selection.

But there's a 2 problems left:
1. it doesn't work well for the line below the current line. For example, if you're at 4th line, then you press `V`or`v`and`6gg`, it doesn't work well.
2. I think we should apply this to `G` motion. But the implement of `G` is different from `gg`, so much code will be changed.

I'm working on the 2 problems but will need some more time. Maybe it's suitable to create a PR first for current work :smile: 
ill leave that up to you though, since it sort of breaks alot of tests (since alot of MoveToLine subclasses don't pass in vimState)