Pluggable backend

## Description

This makes it possible to configure the backend used for storage. All adapters supported by [pirate](https://github.com/pandastrike/pirate) are available, i.e. MongoDB, Elasticsearch, Redis and in-memory storage.

## Usage

This adds a new key to the configuration file, called `backend`. Possible values are `Redis`, `Mongo`, `ElasticSearch` and and `Memory`. 

If this key is omitted in the configuration, the default is to use Redis. An exception is thrown if an invalid value is provided.

## Test Coverage

Not sure how to test this, or whether tests are required at all.