Add OCI 2013 among testimonials.
Minor.
Added ABC among testimonials.
Support executing CMS without installation, but from in directory different from its root.

Add a search path for isolate, which is built taking ../../isolate/isolate
with respect to the file that contains the module cms.grading.Sandbox.

Do the same also for the configuration file cms.conf.
Add a UniqueConstraint in Dataset on (id, task_id).

It's required, otherwise the ForeignKey fk_active_dataset_id
cannot be created.
Implement NullBackend as a /dev/null FileCacher backend.
Update cmsMake to task versioning and to use TaskTypes (fixes #131).
Never delete anything from a FileCacher.

The same file could be used by other structures present in the
database.
Fix some details in Luca's patch.

 * Add comments;
 * Use NullBackend for FileCacher.
FileCacher: add method to completely destroy the cache.
Destroy the cache after having finished testing.

It would be meaningful to save the cache for later testing, but
that would require some better thought architecture to make it
locatable by later executions of cmsMake.
Stupid PEP8 fixup.
Add a couple of Slovenian contests among testimonials.
Don't keep the sandbox by default.
Add small comment
Fix a bug in TwoSteps

TwoSteps was using "foobar.lib.pas" and "manager.lib.pas" as filenames
for Pascal headers, instead of "foobarlib.pas" and "managerlib.pas".

This commit fixes this and introduces a symmetric solution for source
files too, that stops assuming that the language name is the file
extension.

Also, all language and extension related constants were moved into
cms.__init__.
Innocent fixes to Job

Mostly aesthetics.
Innocent fixes to TaskType

Remove some unused attributes.
PEP8
Unify initialization of TaskTypes and ScoreTypes

Simplify get_{task,score}_type by making them accept as parameters,
respectively, task_type_name and task_type_parameters for TaskTypes and
score_type_name, score_type_parameters and public_testcases for
ScoreTypes. Alternatively one can give a dataset, that already contains
all this information as attributes.

Also provide separate functions, get_{task,score}_type_class, to get
only the {Task,Score}Type class given its name.

This means that the constructor of TaskType won't get the Job and the
FileCacher. Parameters can therefore be easily stored and accessed in
TaskType.parameters, whereas Job and FileCacher will be given as
parameters in the call to .compile() and .evaluate(). They'll be local
variables and not object attributes. This way a single TaskType instance
can be used on more than one Job.

Also note that:
- task_type_parameters will be JSON-decoded inside get_task_type, and
  not inside methods of Job.
- create_sandbox doesn't need to have access to the full TaskType but
  only to the FileCacher