This adds a new overwrite_line is very useful for dealing with
cow-related boilerplate.
There is some refactoring possible (and perhaps accidental correctness
improvement) if more functions used 'overwrite_line'.
This implements the "copy" portion of copy-and-paste and the "delete"
portion of cut-and-paste.
'backspace' was also partially refactored to share code with the new
'selection_delete'.
I am excited in how expressiveness/readability improved in 'backspace'
after selection_delete was implemented.