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>
Add an instantiation micro-benchmark

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.

With this patch TestInstantiationSpeed goes from 1569ns to 68ns on my
machine.

Signed-off-by: Robert Varga <nite@hq.sk>
Make KEY_ABSENT and KEY_PRESENT constants

They were just missing the final keyword.

Signed-off-by: Robert Varga <robert.varga@pantheon.sk>
Change packaging to bundle

This emits proper OSGi manifest, so the resulting jar can be used as a
bundle.

Signed-off-by: Robert Varga <robert.varga@pantheon.sk>
Merge pull request #10 from rovarga/fix-instantiation-overhead

Fix instantiation overhead
Merge pull request #12 from rovarga/packaging-bundle

Change packaging to bundle
Merge pull request #11 from rovarga/make-key-objects-constant

Make KEY_ABSENT and KEY_PRESENT constants
Merge pull request #9 from rovarga/fix-broken-serialization

Fix constructor not passing down proper values