Make kew compile with the Closure Compiler.

I was asking Nick for advice about Closure, and I ended up finding this. Its one small file, which means we may end up using it in our project. To do so, I needed to make it compile. This fixes a few minor errors in the types, and makes a few of them more precise. Please feel free to correct my mistakes, since I'm a relative JS and Closure newbie. Other possible TODOs:

TODO:
- data would probably be more precisely specified as *? It might be null, a string, etc.
- should Errors be specified as * as well? I specified them as !Error, since that is what we want, but I think the Promises spec says you can reject a promise with any value, so it probably *should* be *?
- should Promise be generic? (see all(), delay(), which specifies them like that). I'd be happy to attempt that ...

I should have submitted a signed contributor agreement by the time you review this :)