LruLocalCas: Cancel cleanup on shutdown
Description
The cleanup operation deletes old blobs as long as the disk usage is above the low quota. However, if a cleanup operation is still in progress when buildbox-casd is being shut down, it's typically better to shut down as quickly as possible instead of deleting as many blobs as it can.
With this change, cleanup is cancelled on shutdown when minimal cleanup is done (disk usage + pending write space is below the high quota).
This does not cancel listBlobs() before the cleanup loop. I.e., if listBlobs() is taking a long time, shutdown will still wait for it. Cancellation support for listBlobs() would be possible as a follow up, however, it would require cancelling pending (write) requests that depend on cleanup, which would require changes outside LruLocalCas. According to gRPC documentation, UNAVAILABLE would be a suitable status code when cancelling a request due to server shutdown.
Validation
Unfortunately, I don't see a simple way to test this in the test suite.
Issues addressed
Related to https://github.com/apache/buildstream/issues/1681