Description
As it stands, every time we allocate a MutableOffsetMap, the (Linked)HashMap is also allocated to hold new key mappings.
This is strictly not necessary, as we can allocate this map when there is a need for it. This should have no ill effects, as the class is not thread-safe anyway.
Lazy allocation will mean that in case we can satisfy the operations using arrays only (removal, unordered replacements), we will never allocate the map.