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: 
i can confirm this behavior that it should be on the first non-blank character. try running in `vim -u NONE` so that no plugins/vimrc settings get in the way