CWS: Create SubmissionResult in same transaction, in order to avoid IntegrityErrors later.

A SubmissionResult is created for a (submission, dataset) pair the first time
it is queried for, if one does not exist.  There is a race between CWS querying
the results of the submission and ES creating the SubmissionResult for it,
which may result in an IntegrityError. By getting CWS to create the
SubmissionResult in the same transaction as the Submission itself, we can
eliminate this race.
Send correct datasets to RWS.

 - We only send results for the active dataset to RWS.
 - We also now re-send all results for a task when the dataset is changed.