[MRG] Automatically group short tasks in batches

This is based on an online evaluation of the batch completion time to dynamically tune the size of the batch of tasks to dispatch at once to a worker.

TODO:

- [x] ensure tests pass on windows
- [x] update the change log
- [X] test with scikit-learn
You are changing the order of keyword arguments here. This is not great for backword compat (I realize that we have recently done that, with the backend argument).

Is the new argument really so important that it should be first. I would say that it is less important to end users than many of the existing arguments.