Initial change that introduce the Commissioner class
Improve commissioner

* Raise exceptions when required. This helps in isolated testing.
* Only call methods that are defined.
Dynamically define callback methods in Commissioner
Cops don't inherit from Parser::AST::Processor anymore

This forced some minor changes in the way how some Cops
work.
Convert EmptyEnsure to be compatible with the Commissioner class
Clean the CLI class after the Commissioner refactoring
Remove #inspect method from cops

This is not needed anymore as we traverse the AST only with the
Commissioner object.
Rename #inspect to #investigate

To prevent collisions with the #inspect method defined on Object.
Rename #source_callback to #investigate in all cops

If a cop needs custom processing of the file source it should
define the #investigate method.
Add documentation about how to define custom processing in cops
Add specs for Commissioner