Promise tracker

Includes a new "Promise Tracker" module that can wrap promises to add extra before and after then callbacks. Useful for progress indicators.