Abstract general part of FailedHookStat into HookStat interface
Renamed HookStatsListener to FailedHookStatsListener
Added scenario title to the stat
Use explicit methods instead of generics

This will allow multiple memory consumption optimizations later on
Move result code counting routine to the Statistics
Merged stats back to the final implementations
Optimize Statistics memory footprint
Simplify ScenarioStat signature
Fixes broken typehint
Fixed typo in FeatureHasNoBackgroundException message