Refactor data layer step 3

This depends on #298 

This implements the save pipeline and dataset deletion against the `MongoStorageEngine`.

In this pull request the save pipeline is quite refactored to be a clearer set of steps that are run against a list of records before they're saved. The nuts of the changes happen [here](https://github.com/alphagov/backdrop/pull/299/files#diff-8e45691d2b7b752d5789f1f1cede47cdR43)