Add shard detection to default_argument_parser.
Better handling of invalidation of submissions.
Verify SQLAlchemy version requirements.
Using correct version requirement...
Better error reporting if CMS can't access the DB.
ES writes on the submission instead of Worker.

Before, Worker wrote in the DB the outcome of a compilation or of an
evaluation. This was bad because it is ES that knows the situation
better and knows if a step must be undo (because of a faulty worker,
or of a reevaluation, ...).
Minor: typos and style.
Moved actual invalidations of submission into ES.

Now ES is the only actor that can modify the compilation and
evaluation results of a submission in the DB. This simplify the
management of the submissions and will allow to have a more robust
treatment of the submission in the queue by ES itself.
Reevaluation pass directly from the browser to ES.
Isolated the useful get_submissions method from ES.
Better handling of "search_jobs_not_done" in ES and SS.
Invalidate score support in SS.
Upgraded jquery to 1.7.1.
Do not use a timeout for adding jobs to ES's queue.

This is quite fast and does not freeze ES at all.
Inform the admins when the reevaluation request didn't go through.
Using a custom heap to improve queue performances.
Better reevaluation front-end code.
Added proper _ in front of private members in ES helper classes.

Also removed the unused error_count.
Minor modification to ES.

- Removed unused code (working_workers);

- new_submission does not try to queue the evaluation job (as it is
  called only by CWS);

- rendered impossible to queue a job for a submission while another
  job for the same submission is in the queue or assigned;

- cosmetic.
Corrected the behaviour of the queue.