Bring ping behavior in line with RFC

The code previously did not allow ping and pong to have a payload.
Now, it is optional.  Additionally, a received ping will pong back the
payload received.