Re-factor Report class and add specs
- validate report format
- handle output with or without any smells
- return empty yaml when no smells (for yaml format)
- Use has_smells? instead of checking for number of smells repeatedly
 Disable UnusedParameters smell for Reek::Cli::HtmlReport#output
- because the parameter 'smells' is used in erb through binding