dgram: make .send cb act as an "error" event handler.

This allows users to provide a callback that handles potential
errors resulting from a `socket.send` call. The original behavior
of emitting the error event on the socket is preserved.

Fixes joyent/node#4846.
Is the assumption that the DNS lookup will fail?  It's kind of difficult to do that portably, some people are on networks where domain names always resolve to something.  Grep through the logs for test/, we've repeatedly had to fix tests that made similar assumptions.