Experimental approach for recursive point-counting
Points are now calculated recursively.
Adding benchmarks. Test with go test -bench
Using 'Less' method for more compatibility with Go library.
1. Made score calculation properly traverse the tree. 2. Replaced direct sibling/parent/child calls with Sibling()/Parent()/Child() calls where appropriate.
Merge branch 'recursivepoints'

1. Points are calculated by recursively looking at all points belonging
   to children (and siblings of children, and children of children, etc)
   and tallying them up the chain.

2. Sorting is no longer done when nodes are added. Node adding was greatly
   simplified and optimized for the case where the new node does not have
   as many siblings as the node it is being inserted next to.

3. Sorting is now optional and is done by Arrange()