Unit test refactor
Block insert + intellisense

This fixes a bug where block insert wasn't functioning when the edit
actions included intellisense.  The initial bug is that the repeat code
just didn't handle the replace logic stored here at all.  Upon closer
examination though the entire way I was repeating block edits was
broken.

After some examination I decided to reduce them to TextChange values.
This type was meant to represent edits at a single point.  I had to fix
some bugs in the application of TextChange values to a buffer but that
was pretty straight forward.

close #1108