Do not destroy cursors in an erased area
Instead of destroying the cursors, move them to the nearest following
position. This ensures that existing cursors will never get invalidated
indirectly through the hed API. That is, if you call hed_get_cursor(),
the resulting cursor stays valid until you call hed_put_cursor() on it.
Preserving the insert point is tricky:
1. There can now be zero-sized insertion blocks with an active insert
point, and these must not be killed.
2. It is important to slide the insertion point when erase block
includes the end of an insertion, even if the insertion block
itself is not erased.