osdc: Constrain max number of in-flight read requests

The ObjectCacher now keeps track of the number of in-flight
read-request bytes.  If the number of in-flight read-request
bytes surpasses the cache size, the read request will be
delayed until previous read requests finish.  This prevents
the cache usage from ballooning in size during read-heavy ops
such as copy-up from a cloned image parent.

Fixes: #9854
Backport: giant, firefly, dumpling
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
discussed with sage, and I think we can use the existing get_stat_rx() here instead of pending_read_bytes, and only enter this case if get_stat_rx() > 0.

We could also get rid of rd->pending_read, and add new requests to waitfor_read if its non-empty.