Engine, Reporters::Base: DRY needs the identifier
Reporters::Console: nicer output
Engine: handle Source#collect exceptions
Sources::*: delegate exception handling to the engine