close websocket connections on ping/pong timeout

we recently added ws pings for keep alive, and we can now use the longs to close dead connections.

This can apparently happen when connections are not closed cleanly, e.g. on VPNs.

closes #6299

Setting ws_ping_timeout = 0 disables the ping mechanism altogether.
My question is what ends up calling the python method `on_pong` ?