Re-implement `ComputationClient::WaitDeviceOps` (#5811)
* Replace device_locks_
* block new ops while waiting
* get lock before notifying cv
* Hold onto device locks until wait is complete
* formatting
* shared_ptr -> unique_ptr
* remove lock_device
* construct counter inplace
* improve logging
* make operation_tracker private
* formatting
* Comments
* absl span
* address review comments
* remove comment
* actually make a vector for `returned_futures`
* Revert "address review comments"
This reverts commit 77f4b1488f4170fdf6bbec8e784e40c7a0925dfc.
* naming
* correct comment