CAF::Render to render structured text

Yes. We have now at least 4 modules that take a `$log` object to do their logging. It makes sense to simplify all the boilerplate.