Changed one method name

From handleOrphans to findOrphansAndRecomputeCosts
Now an n*lg(n) algorithm recomputes orphan costs.

I now use a priority queue of orphans prioritized by their best
potential costs to keep updating their costs, rather than the previous
n^2 approach.