Have initializer that makes more sense
Rework undo to take complete ownership of some operations

This makes editing the text-storage faster than going through the view
obviously.

Use this as a proof of concept to reimplement the bulk of xvim_shift
as -[XVimBuffer shiftLines:column:count:right:block:]

The performance that this code reaches now is bluffing compared to the
previous one. It's still not nearly as fast as vim, but it's decent.

Note that the cursor position handling code is still messy, which makes
the number of parameters to that selector properly disgusting, but we're
getting there.