storage: Stop CommandQueue dependency search short when possible
storage: Stop CommandQueue dependency search short when possible

In our current implementation of the `CommandQueue` dependency search,
we first sort all overlapping commands by their timestamp and iterate
over these commands in reverse, building up a `RangeGroup` as we go.
Through this approach, we can logically prove that if the `RangeGroup`
fully encloses the new range, then no older commands are needed to be
added as dependencies. Because of this, we can cut the search off early
when we detect this situation.

Perf impact:

```
name                          old time/op    new time/op    delta
Bank_Cockroach-2                 424µs ± 2%     426µs ± 2%    ~           (p=0.529 n=10+10)
Select1_Cockroach-2             59.2µs ± 1%    58.9µs ± 2%    ~           (p=0.075 n=10+10)
Select2_Cockroach-2             1.04ms ± 1%    1.02ms ± 1%  -1.52%         (p=0.000 n=9+10)
Insert1_Cockroach-2              511µs ± 1%     497µs ± 1%  -2.68%        (p=0.000 n=10+10)
Insert10_Cockroach-2             909µs ± 0%     882µs ± 1%  -2.92%        (p=0.000 n=10+10)
Insert100_Cockroach-2           4.63ms ± 1%    4.46ms ± 1%  -3.53%        (p=0.000 n=10+10)
Insert1000_Cockroach-2          44.8ms ± 1%    43.2ms ± 1%  -3.53%         (p=0.000 n=10+9)
Update1_Cockroach-2              768µs ± 1%     755µs ± 1%  -1.66%        (p=0.000 n=10+10)
Update10_Cockroach-2            1.45ms ± 1%    1.42ms ± 2%  -1.87%         (p=0.002 n=8+10)
Update100_Cockroach-2           7.81ms ± 2%    7.62ms ± 2%  -2.44%        (p=0.000 n=10+10)
Update1000_Cockroach-2          71.3ms ± 3%    69.3ms ± 1%  -2.82%        (p=0.000 n=10+10)
Delete1_Cockroach-2              840µs ± 1%     829µs ± 2%  -1.30%        (p=0.009 n=10+10)
Delete10_Cockroach-2            2.50ms ± 5%    2.48ms ± 3%    ~           (p=0.218 n=10+10)
Delete100_Cockroach-2           19.9ms ± 1%    19.8ms ± 2%    ~           (p=0.739 n=10+10)
Delete1000_Cockroach-2           206ms ± 1%     203ms ± 1%  -1.41%        (p=0.000 n=10+10)
Scan1_Cockroach-2                265µs ± 1%     263µs ± 1%  -0.80%        (p=0.029 n=10+10)
Scan10_Cockroach-2               312µs ± 1%     309µs ± 1%  -0.94%        (p=0.002 n=10+10)
Scan100_Cockroach-2              678µs ± 1%     672µs ± 2%  -0.87%        (p=0.035 n=10+10)
Scan1000_Cockroach-2            4.12ms ± 1%    4.04ms ± 1%  -1.95%        (p=0.000 n=10+10)
Scan10000_Cockroach-2           43.1ms ± 1%    42.1ms ± 1%  -2.23%         (p=0.000 n=10+9)
Scan1000Limit1_Cockroach-2       380µs ± 1%     378µs ± 1%  -0.51%        (p=0.002 n=10+10)
Scan1000Limit10_Cockroach-2      425µs ± 1%     422µs ± 0%  -0.72%         (p=0.002 n=10+9)
Scan1000Limit100_Cockroach-2     783µs ± 1%     779µs ± 3%    ~            (p=0.156 n=9+10)
PgbenchQuery_Cockroach-2        3.98ms ± 4%    3.88ms ± 4%  -2.73%        (p=0.023 n=10+10)

name                          old alloc/op   new alloc/op   delta
Bank_Cockroach-2                68.4kB ± 0%    68.4kB ± 0%    ~           (p=0.753 n=10+10)
Select1_Cockroach-2             3.90kB ± 0%    3.90kB ± 0%    ~            (p=0.750 n=10+9)
Select2_Cockroach-2             80.5kB ± 0%    80.5kB ± 0%    ~            (p=0.326 n=10+9)
Insert1_Cockroach-2             22.8kB ± 0%    22.8kB ± 0%    ~           (p=0.643 n=10+10)
Insert10_Cockroach-2            66.8kB ± 0%    66.7kB ± 0%  -0.05%         (p=0.029 n=10+9)
Insert100_Cockroach-2            506kB ± 0%     506kB ± 0%    ~             (p=0.222 n=9+9)
Insert1000_Cockroach-2          4.55MB ± 1%    4.56MB ± 1%    ~           (p=0.912 n=10+10)
Update1_Cockroach-2             36.4kB ± 0%    36.4kB ± 0%    ~           (p=0.956 n=10+10)
Update10_Cockroach-2            99.3kB ± 0%    99.3kB ± 0%    ~            (p=0.460 n=10+8)
Update100_Cockroach-2            702kB ± 0%     702kB ± 0%    ~           (p=0.579 n=10+10)
Update1000_Cockroach-2          6.10MB ± 1%    6.09MB ± 1%    ~           (p=0.353 n=10+10)
Delete1_Cockroach-2             35.3kB ± 0%    35.3kB ± 0%    ~           (p=0.210 n=10+10)
Delete10_Cockroach-2             105kB ± 0%     105kB ± 0%    ~             (p=0.222 n=9+9)
Delete100_Cockroach-2            788kB ± 0%     788kB ± 0%    ~            (p=0.905 n=9+10)
Delete1000_Cockroach-2          7.15MB ± 2%    7.10MB ± 0%    ~            (p=0.315 n=10+8)
Scan1_Cockroach-2               13.1kB ± 0%    13.1kB ± 0%    ~           (p=1.000 n=10+10)
Scan10_Cockroach-2              17.0kB ± 0%    17.0kB ± 0%    ~           (p=0.927 n=10+10)
Scan100_Cockroach-2             49.2kB ± 0%    49.2kB ± 0%    ~            (p=0.459 n=10+9)
Scan1000_Cockroach-2             331kB ± 0%     331kB ± 0%    ~            (p=0.305 n=9+10)
Scan10000_Cockroach-2           5.75MB ± 0%    5.75MB ± 0%    ~             (p=0.308 n=9+9)
Scan1000Limit1_Cockroach-2      13.9kB ± 0%    13.9kB ± 0%    ~            (p=0.340 n=10+8)
Scan1000Limit10_Cockroach-2     17.7kB ± 0%    17.7kB ± 0%    ~            (p=0.285 n=10+9)
Scan1000Limit100_Cockroach-2    49.9kB ± 0%    49.9kB ± 0%    ~            (p=0.530 n=8+10)
PgbenchQuery_Cockroach-2         219kB ± 5%     219kB ±12%    ~           (p=0.481 n=10+10)

name                          old allocs/op  new allocs/op  delta
Bank_Cockroach-2                 1.67k ± 0%     1.67k ± 0%    ~            (p=0.325 n=10+9)
Select1_Cockroach-2               97.0 ± 0%      97.0 ± 0%    ~     (all samples are equal)
Select2_Cockroach-2              2.70k ± 0%     2.70k ± 0%    ~     (all samples are equal)
Insert1_Cockroach-2                352 ± 0%       352 ± 0%    ~     (all samples are equal)
Insert10_Cockroach-2               902 ± 0%       902 ± 0%  -0.04%         (p=0.046 n=10+8)
Insert100_Cockroach-2            6.17k ± 0%     6.18k ± 0%    ~            (p=0.312 n=8+10)
Insert1000_Cockroach-2           59.0k ± 0%     59.1k ± 0%    ~           (p=0.739 n=10+10)
Update1_Cockroach-2                712 ± 0%       712 ± 0%    ~           (p=1.000 n=10+10)
Update10_Cockroach-2             1.41k ± 0%     1.41k ± 0%    ~            (p=1.235 n=10+8)
Update100_Cockroach-2            7.94k ± 0%     7.94k ± 0%    ~           (p=0.513 n=10+10)
Update1000_Cockroach-2           70.5k ± 0%     70.4k ± 0%    ~           (p=0.168 n=10+10)
Delete1_Cockroach-2                682 ± 0%       682 ± 0%    ~           (p=0.211 n=10+10)
Delete10_Cockroach-2             1.66k ± 0%     1.67k ± 0%  +0.05%          (p=0.047 n=9+8)
Delete100_Cockroach-2            11.1k ± 0%     11.1k ± 0%    ~            (p=0.091 n=8+10)
Delete1000_Cockroach-2            106k ± 1%      105k ± 0%    ~            (p=0.263 n=10+8)
Scan1_Cockroach-2                  272 ± 0%       272 ± 0%    ~     (all samples are equal)
Scan10_Cockroach-2                 352 ± 0%       352 ± 0%    ~           (p=0.650 n=10+10)
Scan100_Cockroach-2              1.08k ± 0%     1.08k ± 0%    ~            (p=0.176 n=10+7)
Scan1000_Cockroach-2             8.29k ± 0%     8.29k ± 0%    ~            (p=0.065 n=9+10)
Scan10000_Cockroach-2            80.4k ± 0%     80.4k ± 0%    ~            (p=0.745 n=10+9)
Scan1000Limit1_Cockroach-2         295 ± 0%       295 ± 0%    ~           (p=1.000 n=10+10)
Scan1000Limit10_Cockroach-2        374 ± 0%       375 ± 0%    ~           (p=1.000 n=10+10)
Scan1000Limit100_Cockroach-2     1.10k ± 0%     1.10k ± 0%    ~            (p=0.137 n=8+10)
PgbenchQuery_Cockroach-2         3.94k ± 3%     3.94k ± 8%    ~           (p=0.698 n=10+10)
```

paperstreet/cockroach,sunya123/cockroach,nieyy/cockroach,glycerine/cockroach,cuongdo/cockroach,nieyy/cockroach,cuongdo/cockroach,veteranlu/cockroach,sunya123/cockroach,nieyy/cockroach,arjun4084346/cockroach,nieyy/cockroach,veteranlu/cockroach,vivekmenezes/cockroach,veteranlu/cockroach,vaibhavarora/cockroach,glycerine/cockroach,glycerine/cockroach,arjun4084346/cockroach,maxlang/cockroach,vivekmenezes/cockroach,petermattis/cockroach,vaibhavarora/cockroach,bg451/cockroach,vaibhavarora/cockroach,cockroachdb/cockroach,petermattis/cockroach,veteranlu/cockroach,paperstreet/cockroach,vivekmenezes/cockroach,bg451/cockroach,vivekmenezes/cockroach,arjun4084346/cockroach,vaibhavarora/cockroach,arjun4084346/cockroach,glycerine/cockroach,bg451/cockroach,cockroachdb/cockroach,maxlang/cockroach,sunya123/cockroach,maxlang/cockroach,cockroachdb/cockroach,vivekmenezes/cockroach,cuongdo/cockroach,sunya123/cockroach,bg451/cockroach,cockroachdb/cockroach,sunya123/cockroach,sunya123/cockroach,arjun4084346/cockroach,cockroachdb/cockroach,petermattis/cockroach,nieyy/cockroach,veteranlu/cockroach,paperstreet/cockroach,cuongdo/cockroach,paperstreet/cockroach,vaibhavarora/cockroach,glycerine/cockroach,petermattis/cockroach,vivekmenezes/cockroach,nieyy/cockroach,paperstreet/cockroach,maxlang/cockroach,cuongdo/cockroach,glycerine/cockroach,cuongdo/cockroach,cuongdo/cockroach,vivekmenezes/cockroach,maxlang/cockroach,glycerine/cockroach,glycerine/cockroach,paperstreet/cockroach,maxlang/cockroach,nieyy/cockroach,veteranlu/cockroach,nieyy/cockroach,maxlang/cockroach,vivekmenezes/cockroach,veteranlu/cockroach,cockroachdb/cockroach,petermattis/cockroach,petermattis/cockroach,vaibhavarora/cockroach,sunya123/cockroach,cockroachdb/cockroach,petermattis/cockroach,petermattis/cockroach,veteranlu/cockroach,paperstreet/cockroach,sunya123/cockroach,arjun4084346/cockroach,bg451/cockroach,arjun4084346/cockroach,arjun4084346/cockroach,vaibhavarora/cockroach,cockroachdb/cockroach,maxlang/cockroach,bg451/cockroach,paperstreet/cockroach,vaibhavarora/cockroach,cuongdo/cockroach,bg451/cockroach