Implement dataset exists and create on mongo engine

Implement the dataset_exists and the create_dataset methods on the
MongoStorageEngine.

These two methods are the next easiest to implement and integrate as
they are small methods and they are only used from the write API.
Integrate dataset exists and create on write API

Implement the newly created dataset_exists and create_dataset from the
MongoStorageEngine.
Implement last updated feature of mongo engine

Implement MongoStorageEngine.get_last_updated. Given a data-set name
return the most recent _updated_at timestamp. This is required to be
able to determine if a data-set has been updated recently enough to be
considered up to date.
Integrate last updated feature of mongo engine

This introduces a new data-set class called NewDataSet. This is a
temporary class for the duration of the refactor that, once complete can
be renamed to DataSet. The external interface of is_recent_enough stays
exactly the same, but internally it defers to the storage engine for to get
the last update time.

This also integrates is_recent_enough with the read API detailed status view
that makes use of it.
Implement empty data set feature of mongo engine

Implement MongoStorageEngine.empty method to allow a data set to be
emptied.
Integrate empty data set feature with write API