fixed bug in Clustering

Using the end node of an edge for 'removing' edges does not work.
The MST algorithm connects an edge from the start to the end, thus
I need to remove the edge from the start to the end (its parent).
This removes the need for a nil check on the parent in Clustering
because no edge start node will have a nil parent (as guaranteed by MST).
I also added documentation to clarify what is going on.