allow integrators to use any promise library they want #910

TODO:
- Update documentation
- Unit tests
test($promises): Q and qq.Promise uses #910
feat($promises): 3rd-party promise impls should now work #910
docs($promises): update promise-related documentation closes #910
[skip ci]
docs($promises): work around MD generator issues, again #910
[skip ci]
chore($promises): inc build num #910
[skip ci]