Refactor target scheduling to separate facility.

``Target`` will be refactored down the road to support various
nuanced endpoint types.  Thusly incorporating the scheduling
behavior within it will be problematic.  To that end, the scheduling
behavior has been moved into a separate assistance type to improve
conciseness and testability.

I still haven't verified the other problems associated with multiple ``Target`` registered into a ``TargetPool`` just yet.  This refactoring will make said things easier.

``make format`` was also run.