Modifies this to cover only the text after
split_index, and returns a new item that covers the
split_index that used to be in this.
You can think of
split_index as the length of the returned item.
split_index may not be 0, and it may not be greater
than or equal to the length of this (that is, there must be at least one byte assigned to each item, you can't
create a zero-length item).
This function is similar in function to split (and uses it internally.)
text to which positions in this apply
byte index of position to split item, relative to the start of the item
the newly allocated item representing text before