create a ParallelDispatcher class, take two

See https://github.com/18F/C2/pull/93. Rebased on top of master to exclude the commits around the linear flow.