Deprecate domains

ref https://github.com/iojs/io.js/issues/66

Also, I did notice that `domain.dispose()` is deprecated but missing a deprecation message. So it includes a commit which fixes it. Please inform me if you want it as a separate pull request.

I've also changed two test assertions. I belive usage of domain in `lib/repl.js` was swallowing the assert errors and that those are currently broken.
One reason to prefer .once() over .on() is that the former lets the function's closure object get garbage collected before the EventEmitter object is collected.