Remove unnecessary actual parameter

Type states clearly about what the variable is.
Add missing header under core/ for consistency
Remove trailing newlines in headers
Correct the indentation of `public:`
Add stub for base formatters and ProgressFormatter
Remove unnecessary path separator
Use a separate struct to avoid cyclic dependency

Using a separate struct can avoid including example.h in reporter.h, as
example.h is already including reporter.h.
Add missing constructors for derived formatters

Their constructors are not inherited from Formatter.
Make formatter callbacks polymorphic
Let reporter format execution result