Do not allocate more executors than the max

- Users can specify a max_executors setting for a job, but
it is only partially respected.  If a slave is free and fewer
than max_executors are allocated, all the slave's executors will be
allocated, even if it goes over max_executors.  This makes it
impossible to test jobs in serial unless you make a cluster with
slaves that only have one executor.  And it's surprising behavior.

- Executor allocation now stops once the max is reached.