Memory Changes part 2
Slightly refactors RangeLists from the last Memory Changes MR, which fixes issue 61.
Convert as many const size array iterators to span iterators as possible. When iterating over a const size array, every iteration created a Span, now only the first iteration does in most places.
Now using object pooling for a few object types that were rapidly deleted and recreated.
Converted a few flag checks to binary operations to save memory allocations.