Allow to choose the Perl module to run as a component

As discussed during the Quattor workshop, it is interesting to be able to run components in configuration trees that are not their original ones.  For instance, having `/software/components/mybluelephant` aliasing `filecopy`.  This way, we could have the `mybluelephant` files isolated from any changes in the original `/software/components/filecopy` tree.

When we wish to run a different component, we'll specify it in the `ncm-module` field (we can still pick a better name).  In our example:

```bash
"/software/components/mybluelephant/ncm-module" = "filecopy";
```

This will work correctly only for components that find their configuration paths with the `prefix` method, but we are having a few of them already.

We need some real-world testing, but this proof of concept can be reviewed already.

The first commits implement the feature.  Then the code became so ugly that I had to refactor it, from 4bca515 onwards.  The good news is that this now brings tests. :smile: