job_coordinator: terminate a job if there is a scheduling failure in new_task.

This commit should resolve issue #553.
The kind of scheduling failures that arise from calling new_task are not
recoverable.

The job_coordinator cannot simply retry the failed task because it does not have
enough information about whether the previous submission was successful or not.
Merge pull request #559 from pooya/558

job_coordinator: terminate a job if there is a scheduling failure in new_task.

This closes issue #558
event_server: use processes for storing job events.

Instead of storing the events of the jobs in the status of the event_server, we
create one job_event process for each job and delegate the responsibility of
handling the job events to these processes. All of the operations still go
through the event_server, therefore, it is still a bottleneck.
event_server: add a function for getting the pid of the job_event_handler.

This handle can be used to directly query the job_event_handler (without going
through the event_server).
event_server: Move some more per-job stats to job_event.
job_event: clean up the code.
event_server: move the task_event to the job_event module.

Now these messages will not cause problems for the main event_handler. Although,
these messages still have to be sent from the slaves to the master.