providers should send to multiple locations per check.
actually init firstOrder
don't recalc when there is only 1

mostly indent changes.
skip all calcs when the list is empty
also skips balance calcs when there is only 1 crafter, instead just
returning whatever it found by that 1.
adding work to do is a bonus.
What was all this extra logic supposed to do other than causing *really* weird placement rules?
More provider sending changes
Workaround until looped-around-to-deferred-detection actually works.