Add a testimonial

And put them in order.
Fixup 1edb4bb6093aa483ee5df20817d64b9d9d6d7051
Fix service killing from AWS.

There was a RPC system misusage that prevented the socket connection.
Moreover, the problem was not duly signalled to the caller. Both
problems have been fixed.
nginx: correctly mangle Location URL for RWS.

Closes #228.
Finish adding `from __future__ import unicode_literals` to all files

Now it's in all files except those in cmstestsuite/code/ and docs/.
Fix some remaining uses of open instead of io.open
Do not use explicit casts to str
Fix tests

They still thought testcases were identified by a number instead of a
codename.
Improve argument parsing

Don't fail on non-ASCII chars on Python 2 and uniform the syntax
(use a consistent parameter order, always give action, remove options
that were using default values).
Fix a couple of comments
Improve sample nginx.conf by using keep-alive connections to backends
Typo in a CWS template
Show server time in per-contest or per-user timezone (as defined in DB)

Instead of relying on the local time of JavaScript.

Closes #130.
Make headers available in compilation sandbox for Communication

And don't hardcode the C, C++ and Pascal extensions, also in Batch.

Closes #145.
Put outcome in database also when dealing with user tests.

Closes #255.
Fixup.
Add a hidden setting to write DEBUG messages in the file log.
Fix a race issue in search_jobs_not_done().

Prevent job_busy() from being run concurrently with action_finished(),
which modifies the data queried by job_busy() and temporarily leaves
them in an inconsistent state. In such a case, push_in_queue() is
tricked into mistakenly adding again to the queue a job that has
already been processed.

Closes #254.
Fix another race issue in search_jobs_not_done().

The previous commit is not enough, since it may happen that
action_finished() is run on a job between when to_compile() and
job_busy() are called on it.  This would trick push_in_queue() to
mistakenly queue again the job.

In practice, I couldn't observe this behavior. I think that the
timings in the calls make it impossible or very improbable that this
scenario happen.  Anyway, this commit should fix the error and
completely close #254.

What happens with this commit is that in push_in_queue() the job is
tested again with to_compile() (or similar calls), in a new SQLAlchemy
session the lives entirely inside the post_finish_lock. This way
possible concurrent executions with action_finished() are prevented.
Fixed some type annotations and reformatted some pydocs.