Remove UpdateDB

We decided that, starting with v1.1, when we release a new major version
we'll also release a script to update the dumps (that is, the contest
data exported by ContestExporter) from the format used by the previous
major version to the one used by the new one. This makes UpdateDB
useless, since it can be "simulated" by exporting the data, updating
CMS, dropping the DB to make CMS create the schema again and importing
the data again.
Use a different format for ContestExporter/Importer

The new format isn't "tree-like" anymore but, instead, it's a dictionary
whose values are all exported objects and whose keys are the associated
IDs. The IDs aren't the ones they had in the DB before exportation nor
the ones they will have after importation. They're IDs whose scope is
just the one of the exported data, and they're global IDs (unique among
all classes). This allows us to export complex relationships, and not
only trees. Moreover we are able to write a general method that does
this for all classes and all relationships, avoiding the hacks we used,
for example, when exporting submissions.

With this commit ContestExporter doesn't use .export_to_dict() methods
anymore and ContestImporter doesn't use .import_from_dict().
Rewrite YamlImporter and YamlReimporter

Split out, in a new YamlLoader module, all format-specific code to make
YamlImporter and YamlReimporter completely format-agnostic. Define a
clear interface for Loaders (get_contest, get_user and get_task) to be
able to plug the Importer and Reimporter into any other compatible
Loader by just changing one line of code.

Also, try to make YamlReimporter require as few knowledge of the data
model graph as possible, by inferring some information at runtime (by
using _col_props and by guessing the kind of relationship by their
type). This should make it more generic and able to easily cope with
further changes in the data model.
Remove all specialized export_to_dict and import_from_dict methods

They were now completely unused.
ContestExporter: fix bug preventing export to archive

Fix issue #146.
CWS: fix bug in task description page

Don't assume that User.primary_statements contains an element for every
task name and use an empty list if it doesn't.

Fix issue #147.
YamlImporter: fix bug preventing script from doing anything

Since "not None == True" the script thought that DB access always
failed.
Fix unsetting user IPs through AWS
Fix psutil exception name on RS
Small cosmetic fixes to get_submissions
TV: add Dataset to cms.db

This commit is part of the series that introduces task versioning
TV: add SubmissionResult to cms.db

This commit is part of the series that introduces task versioning
TV: add UserTestResult to cms.db

This commit is part of the series that introduces task versioning
TV: make Job versioning-aware

This commit is part of the series that introduces task versioning
TV: make get_task_type versioning-aware

This commit is part of the series that introduces task versioning
TV: make get_score_type versioning-aware

This commit is part of the series that introduces task versioning
TV: make task_score versioning-aware

This commit is part of the series that introduces task versioning
TV: add get_submission_results to cms.service

This commit is part of the series that introduces task versioning
TV: add function to get the datasets ES and SS have to judge for a task

This commit is part of the series that introduces task versioning
TV: make EvaluationService versioning-aware

This commit is part of the series that introduces task versioning