jobtype_version backref: more consistent spelling
Fix tests after renaming jobtype_version col
Rename jobtype_version_id as well
Remove start, end from job, addressing #90
Make "by" column fixpoint, addressing #49
validate_with_model: ignore unknown keys in ignore

When the input contains unknown keys, but those keys are listed in
ignore, ignore them.
Make attempts not nullabe with a default of zero

This makes more sense as a default value: When a new task is created,
the number of attempts is not unknown or not applicapable (NULL), it
simply zero.
Fix to_schema for JSONList, JSONDict
Attempts can be equal to zero
Add relationship unpacking for tasks
Use NULL for unset ram_warning, ram_max

The code used to use the magic value-1 to signal unset values here,
even though SQL offers NULL for just that.
Remove unnecessary columns from Job
Add a title to jobs
Start jobs API: Job submitting implemented
Remove auto-increasing attempts from mixins

Since Job no longer has an attempts column, we cannot increase attempts
from WorkStateChangedMixin. Instead, we increase it in Task directly.
Adapt job model tests to changes in the model
Changed jsonify to a custom version

This version can cope with custom types like datetime or Decimal that
flask's jsonify cannot unpack
Use jsonify from utility.py again
Docstring updates
Suppress use of jobtype_version_id over the wire