Handle inbound connection pings.
Currently if we don't have an available permits for inbound connections we drop the connection completely, we should wait to see if the connection just wanted to send us a ping to see if we are reachable.

Here is where this should happen:

https://github.com/Cuprate/cuprate/blob/4653ac58849c81b6ab993a1d23f061a97962524b/p2p/p2p/src/inbound_server.rs#L106

We spawn a separate task to wait for the first message to see if it is a ping, then respond if it is and close the connection.

We should also limit the number of concurrent pings to 2 and we should also have a reasonable timeout so we are not waiting for too long.