This is the last commit before changing the cluster trees. Currently I
was working on the last stages to implement the finding of possible
centers in the cluster trees. The next thing will to be go back and
limit the tree construction of the clusters to only have one root (i.e.
only allow the trees to be built in a cluster to have even diameter.)
This was it makes the construction and manipulations of the cluster
trees much easier. Note: on the final constructed spanning tree for the
whole graph we will still be considering the odd diameter it will just
be that when dealing on the subtree level we will treat them all as even
diameter for simplicity.
Code works for finding the center for tree of each cluster. Currently we
are restricting the tree construction of a cluster to only have one root
(ie. have even diameter). 
Example: 0-0-0-0-0 has a diameter of 4 and thus we have the center 0 to
be the root. If we had 0-0-0-0 we would require 0-0 in the middle to be
the root. 
Note: Once we construct the tree if the longest path consists of an even
number of vertices (ie. odd diameter) we then allow for both centers to
be in our possible center list as well as the children/parent of both of
the two.
Adaptive Diameter given to each cluster
*Sort the clusters by avg cost of edge when considering fully connected
cluster.
*Currently just breaking clusters into 3 groups and assigning d-2 and
d-3 for each of the clusters in the top 1/3. Then next 1/3 get d-4 and
d-5 and the bottom 1/3 get d-6 and d-7. However if we drop below d/2 for
a diameter of a cluster we keep it at d/2. 
*Note: we are still only allowing the trees to have one root (ie. even
diameter)