Changed the behavior of DS_Node.Height inside the DisjointSet.Union() method. It is now TreeHeight to more accurately reflect what it is. Also Union() now updates DS_Node.Rank of the shorter set when merged.