Huge performance optimization in computing the perscribed storage order of tree nodes.

NOTE this commit breaks backwards compatibility with pre 0.6 repositories as nodes
are stored in a different order inside trees.

Use a FNV-1 <http://en.wikipedia.org/wiki/Fowler%E2%80%93Noll%E2%80%93Vo_hash_function> hash function
instead of SHA-1 to compute the storage order and bucket by depth of tree nodes.
The FNV hash function has a very good distribution for strings, not too much collisions,
and is really fast to compute out of strings. So much that we used to need some kind
of buffer in NodePathStorageOrder when using SHA1 which also lead to heap memory issues,
but we don't need it anymore with FNV.

Yet I have tested it with up to 50 million nodes with no resulting colissions, and is orders
of magnitude faster than SHA-1 when using the Guava SHA-1 HashFunction (e.g. bellow 4s instead of over 100s
to sort 5M nodes).