a config object has to know its associated app

it's trying to call warning() and fatal(), so needs something to call it on
OTOH, since an app contains a reference to its config, this ref needs to be weak in order to avoid memory leaks
(although that's probably not much of a problem given the limited scope of a single command run)
wanted to make sure messages in pretend mode look right