Fix off-by-one errors, with tests

This patch fixes #191 and #51.

I'll be using as example yank, but I confirm the same behavior with
delete and replace.

After experimenting a bit with vim and atom, I noticed that when yanking
thee lines with the cursor on the middle of a paragraph with y2j on
vim, it copied the three lines. This is not true for vim-mode - it was
copying one line partially.

I linked this with the off-by-one errors, and got to the conclusion that
finishing commands using , j, k, down arrow and up arrow selects all
the current line apart from lines on the top/bottom of the current
one.

I wrote some tests, hopefuly in the correct palce. I'm a bit off in
where to put the tests.
Merge pull request #307 from fotanus/off-by-one

Fix off-by-one errors, with tests