, I've updated #133
, so it ready to review. I'm not sure about naming, but guess it cover all basic case(remove block,single backspace,pasting) except implementing shifting horizontal scroll when it required.
As alternative variant instead
could add method ToRuneWithChecks and look for shift if necessary there.