Returns a list of ranges identifying [start, end) -- closed, open --
positions within the source byte array that would be split using the
separator byte array.
The sizes indicate the sizes of the relative components/segments.
In case one of the segments contains this separator before the specified
size is reached, the separator will be considered part of that segment and
we will continue till size is reached.
Variable length strings cannot contain this separator and are indiced with
a size of
#VARIABLE_SIZE. Such strings are encoded for this
separator and decoded after the results from split is returned.