Refactor result report to generate string instead of using logger

I want to move away from the singleton logger. To do this we'll
have the result report class return a formatted string instead and
let the caller log it instead.

I don't really like how the output is displayed in the log file
right now but I'll address it in a future commit.
Backup Tests: refactor test names for clarity