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.
If we emit and there's no error listener, the error will be thrown. This check explicitly prevents that if there's a callback.