Uniformly distribute a number of elements across a number of Tasks and return a list of counts.
If uniform distribution is impossible, then some Tasks will receive one
more element than others. The sequence of the number of elements for each
Task is non-increasing.
elementCount - number of elements to distribute
taskCount - number of Tasks that receive elements
list of counts specifying how many elements each Task should receive