S, cc, Vs and Vc change last line correctly

As reported in issue #272 , the last line would be deleted and the
cursor moved up to a new line above the second-last line.

This commit fixes it by detecting the last line case and inserting a new
line AFTER the deleted line.
Vp removes last line and appends to previous line

When the last line in a file is pasted over using visual linewise mode,
then the last line was actually deleted and the content appended to the
end of the second-last line. This is different from Vim where the last
line is actually replaced and the second-last line remains untouched.

This is related to the behaviour of Vs and Vc as reported in #272.

The cause is the DeleteOperation. PasteOperation uses it to implement a
replace using delete and insert, but in this cause it triggered a
special case where the last line is cleared including the previous
newline.

This commit moves this special case code to the regular execute
method, so any code which is still calling execute(...) remains
unaffected.