ResultManager now hits a database, but it makes things really slow

We have 2 options at this stage, we can edit and pray.
Or we can be responsible and use the cover and modify approach.
Start by writing a higher level test that proves the application will
hold together after we make a change.

Try introducing a collaborator to the ResultAggregator for fetching
results. A simple implementation of this results fetcher can simply
delegate to the existing ResultManager, but at least we've now isolated
our ResultAggregator code from the rest of the stack.

Having this higher level test lets us make the changes safely, once we
are confident our change was successful we can optionally (depending on
the situation) delete the higher level test, relying on the individual
unit tests from now on.