This commit is multi-fold as it also refactors internally context and logger
as interfaces so it is easier to plug luet as a library externally.
Introduces a garbage collector (related to #227) but doesn't handle yet
parallelism.
Closes#265
The path contains an ending "/" which wouldn't match when we walk dst as
it's not there.
That had the unpleasant effect of creating empty folders in the
destinations