Ensure slot centroid is run first in forced mode, just as it in in SFM.

Also improved code comment for the same logic in SFM.
Move slot setup from Task run() methods to constructors.

It may be useful to algorithms to know what the slots point to before they're
initialized, and now that the slots are managed by Schema aliases instead of
SourceTable, we can do that.
Fixups to SFM test to adapt to changes in slot definition.

The previous state of this test seemed a little incorrect - the task was initialized
twice, but only used once - probably due to a merge conflict resolution problem.
But that didn't cause a failure until the preceding commit that moves slot definition
from the run() method of the task to the ctor.
Make flag aliases in safe extractors direct

Instead of using the slot flag alias as the target, we want to resolve the slot flag
alias, and use its target as the target, in order to keep things consistent if slots are
modified after measurement.
Add special handling for centroiders in SafeCentroidExtractor

Unlike other algorithms, Centroiders shouldn't consider it a failure if we can't feed
them anything better than the Peak, because that's how they'd need to be run if
they were the first one.  And we need to check that they aren't the slot centroider
before we try to make an alias back to the slot centroider.
Modify Centroid algorithms and PixelFlags to conform to the new C++ design