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
How about using OOP here and create separate small report classes?
We're doing this "kind of" already if you look at the end of this file with the "QuietReport" and "VerboseReport".

Then we could get rid of the dynamic dispatch via "send" (which in my mind is a kind of hidden form of "type checking") and just do something along:

```Ruby
report = report_class.new.....
report.show
```