Add idlePingFrequency to WebSocket

This automatically sends an empty ping frame after a duration
with no messages sent on the socket.