fix/support for multiple arguments

*socket.emit* actually supports multiple arguments like this including a callback:

    socket.emit('some event', 'a', 'b', 'c', my_callback)

*emit* doesn't work if you do something like this:

    socket.emit('join', channel_name, nickname)

because *emit* thinks nickname is *callback*.