Better HPPC data-structure

Here is what the datastructure looks like now (same dataset of 10 IP's):

As you can see, most redundant nodes have been removed. Instead of creating new nodes along the way, the new algorithm tries to be smart about things and only adds new nodes when it needs to: when a node already exists in some branch, a new node is created that contains that old node and the newly added one.