Introducing triggered services.

ScoringService, PrintingService, ProxyService, and EvaluationService
have all a similar pattern (getting notified of object that needs an
action, and running a sweeper to catch missing object). This commit
introduce an appropriate base class, TriggeredService, that takes care
of setting up these mechanisms.

It also make all these services use a single priority queue (similar
to what ES used), extracting it to a reusable and tested class.

More in details. The real work on the operations to perform is
delegated to "executors", who have a single method to override,
"execute". Inside an executor, there is a priority queue of operations
to perform, and the executor sequentially picks from the top an
operation to execute (or with a configuration, can also execute all
the operations currently present in the queue at the same time).

A triggered service can have one or more executors. Each time an
operation is enqueued, or a missing operation is found, the operation
is enqueued in the queues of all executors.

In practice, the priority queue is necessary only for ES, but its nice
to have also for the other services (apart Proxy that executes all the
operations at the same time, and is therefore the only client of the
batch mode of execution). Proxy is also the only service using more
than one executor, one for each external ranking.

Nonetheless the model gives some flexibility to do additional change
in case we will need them, for example: an ES that can handle more
than one contest, and with a pool of workers assigned to each, could
have n executors, each ignoring the submission for other contests.
Converting to the lazy version of logging.
Fix queue_status and workers_status RPC methods
Add to_dict to the other operations
Initial setup of cmsPracticeWebServer
Now accessing / outputs index.html instead of a 404 error.
Initial import of PWS template; minor fix in PWS.py
Fixed PWS and setup.py to use the new 'assets' folder
Updated angular.js to 1.0.8; Moved navbar and main content sections to specific html views
Signup page; Minor fixes
Some clean-up
Signup form now generated by angular

Added app.css to store future ng-view animations
Minor fixes to footer.js
Added back the submit button

And some aesthetical change to signup.js
Now it's possible to read/write form data

Also I removed some unnecessary quotes from signup.js
Now it's possible to specify whether a particular input is required
Added a DBFileHandler that outputs files stored on the database
Added a way to specify the filename when requesting a file
Use mimetypes module instead of random hacks to detect mimetypes
Added basic validation to signup form; Trying to make $http work
Manual checks on signup form; Reorganized navbar

Added "tasks" page; Created SigninCtrl