Fix constructor not passing down proper values

Internal constructor needs to pass down the arguments, so read-only
snapshots are created properly. This allows serialization to work as
expected. Also add serialVersionUID to fix some warnings.

Signed-off-by: Robert Varga <robert.varga@pantheon.sk>
Optimize the use of AtomicReferenceFieldUpdaters

Benchmarks indicate that instatiating the updaters takes ~92% of the CPU
time required to initialize a TrieMap instance.

TrieMap.inodeupdater is an unused per-object updater, which has its
equivalent in INodeBase.updater.

rtupd is an unused istance, so we can freely remove it, lowering the
memory cost of a TrieMap just a tiny bit.

Finally, we centralize the allocation of rootupdater -- instead of
allocating it over and over again, we have a single instance which we
share.

Signed-off-by: Robert Varga <nite@hq.sk>