Stash config definition block for rebuilding

This means singletons can be rebuilt instead of using the
:cache technique (which sucked). This means that all singleton
values are rebuilt on #rebuild! which is much simpler
for testing.