Support multiple report formats at once

This branch allows you to specify multiple report formats at once. It is backwards compatible with the existing configuration format.

M
@henrikbjorn Using a mocked `ServiceContainer` will require setting up expectations for all of the method calls made in the `setShared` method. This example only covers one result of the method and I find it messy to create expectations for calls not related to the behaviour under test.

M