Promises

@opal/owners **DO NOT MERGE**, I'll merge it when it's ready.

This pull request implements promises, as conceptually seen [here](http://wiki.commonjs.org/wiki/Promises/A) and humanly explained [here](http://blog.parse.com/2013/01/29/whats-so-great-about-javascript-promises/).

I'm opening this early so people can try it and comment about the API.

I'm doing this because while working with real world stuff I started getting into callback hell, and I started looking for solutions and found the Promise/A proposal.

Promises will be used in opal-browser where meaningful, for instance `HTTP.get` and friends will return a `Promise`.