job_coordinator: Do not start a new stage if there is one started already.

In the make_stage_tasks, when we are creating the next stage, we normally are
sure that it has not been created.  However, in the concurrent model we cannot
make this assertion.  Therefore, we make this function more strict in this
commit.
job_coordinator: Make sure a stage has finished before sending an event.

In the old model, the do_stage_done function is called only when a stage
finishes and there is no need for double checks.  However, in the concurrent
model, this function might be called when some tasks are finished.  Disco has to
make sure this stage can be finished before actually finishing it.
job_coordinator: extract wakeup_waiters out of task_complete.

task_complete use to do two separate things which made it complicated.
job_coordinator: Run the split tasks of the next stages concurrently.

If the next stage is of type split, we can start it even without finishing the
current stage.
disco_web: avoid showing negative numbers for the number of waiting tasks.
Merge pull request #506 from pooya/concurrent_split

Concurrent split