Lightweight promise polyfill for the browser and node. A+ Compliant