Re-writing ethereum.js. Added future/promises support.