Promise based HTTP client for the browser and node.js