SPARK-4214. With dynamic allocation, avoid outstanding requests for more...

... executors than pending tasks need.

WIP. Still need to add and fix tests.
This would be a misconfiguration because executors wouldn't be able to fit a single task.  Will add an exception to make it fail earlier.