Task is the input for slaves. This is a directory with at least:
* code.tar, code-revision.txt, code-version.txt
  Compressed tarball of the code you have to test. As a rule that should
  be some kind of "git archive" output. Text files accompany it with
  human readable version and revision (commit hash) information.
* steps.tar, steps-revision.txt, steps-version.txt
  Same as above, but archive contains the steps your slave has to
  perform. Steps is a bunch of lexicographically ordered executable
  files.

Task's directory name has several fields: NUM:PROJ:VERSION:ARCH[:HOST].
Optional HOST can be used to force job run on a specified host. NUM is
constantly increasing number, some kind of unique identifier of the tasks.

$TASKS directory has four subdirectories:
* ctr/ -- atomically incrementing counter state
* tmp/ -- temporary storage for newly creating tasks, moved to cur/ after
* cur/ -- ready to be taken tasks
* old/ -- archived tasks, non-taken or completed