formatting change
CON-75: Add custom List to hold the Buffer pages

This commit implements a custom List to hold the pages in the Buffer.
In particular, the custom list fully delegates to a Java ArrayList
except for the iterator() method. Instead, the custom List implements
a custom iterator that has the ability to "reload" in the background
if items are added to the underlying collection from outside the iterator.
This essentially means we don't see ConcurretModificationExceptions, which
is okay since the underlying collection can only see new data (as opposed
to seeing existing data deleted) while a reader is using the iterator