Allow custom configs to be passed to `spawn`.

The main point is to allow passing other `std` Streams to output command
content
Decouple and fix tests

Allow #usage and #help tests to be independent from each other
Simplify env#namespace and add missing tests
Add env#lookup tests
Refactor Env#lookup

Also remove a lot of noisy "too much configs" code that growed the
complexity of the code paths.