temporary workaround for https://github.com/tessel/runtime/issues/311
net.Server should emit 'connection', not 'socket', events
have net.Server emit listen event, handle optional arguments to .listen method
actually register listening cb, fire event async so sync-registered listeners can catch