* Separate the leafs hash domain from the internal nodes' one.
This change prevents an internal node from having the same hash as a leaf,
and thus from potentially ending up with two different trees with the same root hash.
Close#20
* Align with the CT spec, and allows building a tree from an empty dataset.
Fixes#20. Prepares #24.