append_range_within : List(a), U64, U64 -> Try(List(a), [OutOfBounds, ..])
Append count items to the end of the list, copying them from the
list itself beginning at index start.
The items are copied one at a time, and an item this call has just
appended can itself be copied. So if the copy reaches the original
end of the list, it keeps going into the freshly appended items,
which repeats the items from start onward for as long as
requested—copying 4 items from the last index of [1, 2]
appends 2, 2, 2, 2, and copying 3 items from index 0 of [1, 2]
appends 1, 2, 1.
Returns Err(OutOfBounds) if start is not an index in the list,
unless count is zero, which appends nothing.
expect [1, 2, 3].append_range_within(1, 2) == Ok([1, 2, 3, 2, 3])
expect [1, 2, 3].append_range_within(2, 4) == Ok([1, 2, 3, 3, 3, 3, 3])
expect [1, 2].append_range_within(0, 3) == Ok([1, 2, 1, 2, 1])
expect [1, 2].append_range_within(5, 1) == Err(OutOfBounds)