wrap thrown/errbacked primitives in promisify
use current 'this' in individually promisified functions if no explicit receiver is given