AWS: small fixes, whitespace and pseudo-PEP8

Not giving the parameter to the constructor of DB classes already sets
it to its default value: no need to be explicit.

Try to use a consistent style in most of the handlers: start by getting
the objects whose IDs are given by parameters, define self.contets as
soon as possible (as it could be used by the error handler), conclude
with try_commit, redirect differently based on its result (if
appropriate) and put the things "to do" between these two blocks,
separated by blank lines to highlight them.

Move all assignments for the "reevaluation_buttons" parameters together,
to highlight explictly where they're actually used (this becomes more
inefficient, since they're assigned many times with the same values, but
assignments are so simple that it shouldn't matter).

PEP8 states: "avoid more than one space around an assignment (or other)
operator to align it with another". I think this also applies to spaces
after commas in a list of tuples. And, anyway, what we had wasn't a real
alignment...

Remove an unused handler.
RWS: small fix on the client-side interface
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.