An array-based gap buffer implementation, based on
the Array data structure from elm/core.
This library tries to implement gap buffer operations in amortized
constant time in practice. The backing Array of the gap buffer
doesn't shrink when items are deleted.