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: 
In this doc http://vimhelp.appspot.com/motion.txt.html#gg, it says:
> Goto line [count], default first line, on the first non-blank character linewise.  If 'startofline' not set, keep the same column.

And in my situation, `gg` took me to the first non-blank character. Did you set the `startofline` to `off`?