msgr: add MSGR_PING feature

This is similar to KEEPALIVE, except a timestamp is also exchanged.  It is
sent with the PING, and then returned with the PING_ACK.  The last
received stamp is stored in the Connection so that it can be queried for
liveness.  Since all of the users of keepalive are already regularly
triggering a keepalive, they can check the liveness at the same time.

See #7888.

Signed-off-by: Sage Weil <sage@inktank.com>
mon/MonClient: use new msgr ping to verify the mon session is live

Verify that the mon is responding by checking the new ping reply
timestamp.  We cannot rely solely on TCP timing out and returning an
error.

Fixes: #7888
Signed-off-by: Sage Weil <sage@inktank.com>