Move backends and OS helpers to separate directories

This opens the way to add backends and helpers more easily:

* The backends were moved to a `lib/backend` directory and imported by `lib/backend.rb`;
* The helpers were moved to a `lib/helper` directory and imported by `lib/helper.rb`;
* The backends are now classes, instantiated with `commands`. This allows to remove all kind of backend intelligence from matchers.

The goal of this big PR is to move toward a really generic backend system, that might not even be based on commands.