Circular crack tweaks

I made some modifications to your commit.

1) I put the code that finds the end nodes for the loop crack into its own method to clean things up.
2) I made a separate routine to find the nodes with the max x, then max y, then max z coordinate, and call this in a couple of places.  This is more robust than the previous check, that just looked at x.
3)  I look at the coordinates of the nodes on either side of the first end node, and picks the node by coordinates.  This ought to be more robust.
4) We're using a tolerance in a few places in this class.  Make a static const member variable instead of declaring it in several methods.