Recursive config file traversal to expand all shell variables

This gets a little recursive sometimes, but if so we can only blame ourselves and our deeply-nested object structures. The royal we.

But really though this is needed if you have a shell variable a couple of levels deep in the config file.