Convert Node-style callbacks to promises, using the built-in Promise implementation