Update dependencies, use `es6-promise` as Promise polyfill
Return new Promise instead of thenable object
Update package.json