Create a ReportProvider interface

Necessary for customizing reporting when the user will initialize the factory.

Signed-off-by: Francis Galiegue <fgaliegue@gmail.com>