DB: add Dataset
DB: add SubmissionResult
DB: add UserTestResult
DB: enumerate_files
DB: get_from_id_or_create

Add helper functions to lookup, and if necessary, create
SubmissionResults and UserTestResults.
DB: get_submission_results and get_user_test_results

This is a more efficient means than loading each submission or user test
and its results separately.
grading: Job
grading: get_task_type
grading: get_score_type
grading: update to use SubmissionResults
services: update get_submissions to get_submission_results
services: add function to get all to-autojudge datasets for a task
ES: loads of changes
SS: loads of changes
CWS: loads of changes
AWS: add handlers for Datasets
AWS: fix Manager and Testcase handlers
AWS: update to use SubmissionResults
AWS: update to use SubmissionResults (2)
AWS: allow to see submissions on a certain dataset