create a ParallelDispatcher class

Basically just moving the mailing logic out of the Cart model, with some other random refactoring. LinearDispatcher in the works, but figured I could submit this separately and keep the PRs smaller.