Re factor to reek less

This PR brings down the warnings on `reek lib/` from 94 to 88 by:
- Re-factoring Reek::Cli::Report
- A small re-factoring in `Reek:Smells::ClassVariables#examine_context`

This PR also,
- Creates a more consistent interface for report outputs 
 * Basically, the output for yaml format when there were no smells, was `''`, which is inconsistent, because IMHO, the output should be `--- []`, i.e. an empty but valid yaml. This would make it consistent for yaml parsers.
 * Similarly, when there are no warnings and the output expected is html, an html file is created with the message, `0 total warnings`

- Tests output when there are no warnings
- Removes trailing spaces from edited files
Another option is to create a test helper method to better reveal the intent of suppressing output to the console. Something like:

```
def capture_output_stream
  $stdout = StringIO.new
  yield
ensure
  $stdout = STDOUT
end
```