Adding read-only Future, adding #once to EventTarget

Hi Yehuda,

I was working off of RSVP to split it into distinct Future and Promise concepts.  This might not be very Promises/A+, but it seemed a little strange that a function could make a Promise and return it, allowing the caller to resolve or reject it.  I don't imagine this is much of a problem in practice, but I thought it might be an improvement.  I'm curious what you think.

I also added in EventTarget#once so that event handlers would clean up after they do their job.

-Kevin