Remove unnecessary code.

`File.expand_path` already checks if the path passed is relative or not
before expanding it.
Move responsibility of initializing analysed modules to AnalysersRunner
Refactor Rubycritic's public API

Changes include:

* Breaking the Cli class into several, smaller modules

* Removing the Orchestrator and ModulesInitializer modules

* Improving access to the global gem configuration

* Setting the source_control_system in the global gem configuration
(this way it's no longer necessary to keep passing it around)

* Fixing broken tests

Programmatically, RubyCritic can be used as follows:

```
paths = ["lib"]
rubycritic = Rubycritic.create
rubycritic.critique(paths) #=> returns an array of AnalysedModules
rubycritic.report          #=> creates an HTML report
```
Rescue the invalid CLI option error
Improve SourceLocator so it doesn't break with nil
Create option `mode-ci`

In the default code, RubyCritic analyses the same code twice. It
analyses the last commit and it analyses the current, uncommitted code.

In CI mode only the last commit is analysed. Also, the smells' statuses
will also be hidden given that they will all be marked as "old".