Added validation that the DistToRootCalculator is correctly finding starting objects.  Turns out it's not.  Also accidentally optimise TryKill quite a lot.