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.
What calls `on_pong`?