Jobs and tasks

Change Job definition as previously discussed: Job now means a collection of identical Tasks.

Also, change the semantics of job scheduling to make it the true atom of the scheduler.
It seems worth to put context to these constraints, maybe a comment explaining the origin/reasoning would help.

Additionally make those constants or variables.