Add support for promises

@kpdecker Setting aside that this fails in zepto presently (unreleased component problem, and more problems if I point bower.json at a URL) is this implementation even remotely sane?