Automatically kick off ES & SS if autojudging is enabled.
Rethink concurrency issues around SubmissionResult. Enforce that ES creates.

The previous code created a SubmissionResult if one did not already exist. This
led to all sorts of surprises, such as read-only queries that actually aren't
read only. This patch adds some sanity by enforcing that only ES creates a
SubmissionResult object, as it is the only thing that needs to. The rest of the
code is modified to cope with a non-existant SubmissionResult.

The one exception is in AWS when cloning a dataset. But ES shouldn't be
touching it if it's just been created, and is not yet being judged.