Fixes and testing for Deferreds.

The Deferred is a promise-a-like that allows for non-nested callback
usage. The functions that are provided (chain and wait) are convenience
functions that aren't used in the main Tachi library. I personally
prefer the brevity of "then" as the contract over "onComplete", but I
didn't want to pretend the Deferred actually meets the Promise/X specs.
Removed some debug logging from cookie.js.

I really need to get used to one of the node debuggers...