core: final erradiction of null envs + tests
core: [build] only builds necessary pipelines for the requested result

the [fold] function used to traverse pipeline trees would visit all
descendants of a pipeline. There is now a guard function that may be
used to cancel the visit of a node and its descendants. This is used
by [build], so that if a dep is built, the function does not visit and
build its descendants. This could be considered as a performance bug.

The test is now more relevant to check dependencies are correctly
computed.
core: introduced new markings in cache

- in /cache: the actual cached file and the date of its calculation
- in /used: touched last time the pipeline was needed for something
- in /reqs: last time the pipeline was directly requested