http: use once() instead of on() for timeout listeners

Switching to `once()` helps to avoid potential memory leaks
and reduces the need to call `removeListener()`.

Closes #7297
Yes, but isn't a new socket created and then emitted on each new request [here](https://github.com/joyent/node/blob/master/lib/net.js#L1273-L1285)?