Fix for #319: 'ctrl+D' and 'ctrl+U' jump much more than they should

This version scrolls from the origin like the original version, but doesn't do an additional scroll. This was causing overscrolling. The end behavior is slightly different from vim's. In vim paging up/down will leave the cursor the same relative distance from the end of the buffer after the jump, and will page regardless of the original cursor position. This version jumps the cursor by half pages, and does not scroll the view until the end of the visible area is reached. 

This has the positive side effect of making it much easier to see what is going on in modes like visual, where you can keep track of both ends of the selection, but may not be the expected behavior for a vim user.

The original implementation adjusted from the selection point (origin) and then scrolled, so a cursor at the end of the view would jump down half a page and set that to the top of the new view, causing lines to be missed.

My second attempt at a fix involved just scrolling based on the visible region and setting the cursor to the beginning of the new region. This worked great, except in visual mode. In visual mode for some reason the region and selection would adjust but the:

        self.view.run_command('scroll_lines', {'amount': -scroll_amount})

line would do nothing, resulting in the selection changing but the view position not changing to the new expected region. Attempts to work around this using view.show() weren't fruitful either. Someone with more knowledge of ST and the Vintageous code base might have a better go at this, but this patch gets it to something that at least makes sense and doesn't skip lines.