Added same catches in submitAll - still...
Nitpick - bye DiskRecord
First draft of adding Serializers to HeapFile
Suppress warnings + extract alloc method
Smells in Record page amended
Finally moving the code for the root in removeInternal - TEST:

keyDeleted = readKey(i - 1); was missing from the root code !!!
lockInterruptibly()
Nitpick
Read methods moved to RecordsPage from node
max_keys moved to Node - should move to the tree for space efficiency

But maybe impossible if Leafs and Internal nodes have different value types
getMax_keys() --> getMaxKeys() - notice where used
Header is-a Page
"Bug" in delete unveiled by _firstPair() returning null now

The problem was that parent() needs the first key to locate the node - and
 finds it by firstPair() - which now on an empty node returned null
FIXME - let merge() return something different (laborious)
Toy HeapPage - hmmm - slots are offsets here - must convert
setPageDirty package private - whenever writing to the page it's set dirty

Maybe have a cache in page to avoid calling the BM ?
Can't make page abstract
Main - oops