transport.listen() can listen without args

transport.listen() spits out an error if it's not given any args.
I fixed that and added a 'listening' event.