Helper var for clarity.
Shared free lists instead of per-Collection lists, with chaining.

Moving to shared free lists instead of a free-list per Collection.

Additionally, rootNodeLocs may reference an optional chain of
rootNodeLocs, forming a chain of ref-counted rootNodeLocs, fixing a
nil-pointer crash.  The crash scenario: slow readers (or snapshotters
(such as for a compaction task)) have references to root node A.
Meanwhile, two mutations happen in sequence, A' and A''.  At the
second mutation, A'', the code before this commit would decrement the
A' ref count to 0, allowing it to (incorrectly) reclaim nodes.  The
reclaimed nodes might incorrectly include nodes that were still being
accessed by readers of root version A.