Use `__all__` when loading modules(if provided).

* When loading the module's functions, if the module provides `__all__`, that's what's iterated.
* If a function provided in `__all__` starts with `_` it's not skipped because the module explicitly provided it.
* Minor formatting in the logging messages.