Refactor data layer step 1

Introduce the beginnings of a simplified storage engine API in the form of the `MongoStorageEngine`. This pull request introduces the class and implements and integrates a couple of the simpler methods on it. The final goal is to better separate the underlying database from the rest of the application and thus allowing the processing pipeline to be more easily refactored.

The interface for the storage engine will ultimately look like this:
```python
class MongoStorageEngine:
  # return true if the database is alive, false otherwise
  def alive():
  # returns true if the data set exists
  def data_set_exists(data_set):
  # create the data set with the appropriate parameters
  def create_data_set(data_set, size):
  # delete the data set
  def delete_data_set(data_set):
  # get the update time of the most recently updated record in a data set
  def get_last_updated(data_set):
  # empty all records from a data set
  def empty_data_set(data_set):
  # save a record in a data set (all preprocessing happens before it gets here)
  def save_record(data_set, record):
  # query a data set and return a flat list of results
  def query(data_set, query):
```

This pull request implements `alive`, `dataset_exists` and `create_dataset`.

**WARNING**
This pull request and the next few will introduce some redundancy and some duplication. I've done it like this so that it can be integrated in small steps.

## Learnt along the way
In doing this series of changes a couple of early decisions have come up as not ideal.

### Passing data set name to `MongoStorageEngine`
I think it would be better to pass the `DataSet` or `DataSetConfig` object down and let the storage engine decide how it wants to generate the underlying 'table' name. For example, the mongo engie could generate it based on the data group and data type.

### The method names in the `MongoStorageEngine` are not consistent *DONE*
They should be.

### Naming of data set (or dataset or data_set) is not consistent *DONE*
It should be.