Finalize and cache loggers in proxies

get_logger and wrap_logger return proxies because they're frequently used in
module scope before they're configured.

Once they're bound for the first time, we can cache them though if the user
allowed it.
Doc improvements