feat(bufferring): add promises support

 - the prev/next callbacks can now return promises instead of direct results