Defer any execution in config.coffee

If it's simply required, too much gets cached and it can result in an
unreliable config tree being built. This change makes it maximally 
reliable and also the slowest.
Make config command testable, add first test