Change from promise progress events to hierarchical logger.

This is an huge commit, contains other small tweaks/fixes.