Start a thread to dispatch block moves for each source.
The thread selects blocks to move & sends request to proxy source to
initiate block move. The process is flow controlled. Block selection is
blocked if there are too many un-confirmed block moves.
Return the total number of bytes successfully moved in this iteration.