REF: remove compute_reduction
State: closed

Along with #32083, #32086 this gets rid of _libs.reduction.

Now, time to run some asvs

Labels:
name: Performance
description: Memory or execution speed performance

Comments:
This one had hurt less than I expected:

```
       before           after         ratio
     <master>         <no-libreduction>
+      10.3±0.2ms       63.0±0.2ms     6.14  frame_methods.Apply.time_apply_ref_by_name
+       240±0.8μs          507±2μs     2.12  indexing_engines.NumericEngineIndexing.time_get_loc((<class 'pandas._libs.index.Int16Engine'>, <class 'numpy.int16'>), 'monotonic_incr')
+       326±0.7μs          506±1μs     1.55  indexing_engines.NumericEngineIndexing.time_get_loc((<class 'pandas._libs.index.Int8Engine'>, <class 'numpy.int8'>), 'monotonic_incr')
+      2.76±0.6μs         4.20±1μs     1.52  index_cached_properties.IndexCache.time_shape('TimedeltaIndex')
+     1.21±0.08μs         1.83±1μs     1.52  index_cached_properties.IndexCache.time_values('UInt64Index')
+        308±20ms         450±20ms     1.46  frame_methods.Nunique.time_frame_nunique
+     1.37±0.05μs       1.91±0.5μs     1.39  index_cached_properties.IndexCache.time_is_all_dates('DatetimeIndex')
+         957±7μs         1.33±0ms     1.39  series_methods.NanOps.time_func('sum', 1000000, 'int8')
+       127±0.9ms          171±2ms     1.35  frame_methods.Apply.time_apply_user_func
+     1.96±0.06μs       2.58±0.6μs     1.32  index_cached_properties.IndexCache.time_inferred_type('MultiIndex')
+     9.03±0.07ms      11.6±0.08ms     1.29  frame_methods.Apply.time_apply_lambda_mean
+     1.30±0.01ms      1.67±0.01ms     1.28  series_methods.NanOps.time_func('prod', 1000000, 'int8')
+        870±30μs       1.11±0.1ms     1.28  binary_ops.Timeseries.time_timestamp_series_compare(None)
+      9.97±0.1ms       12.6±0.2ms     1.26  frame_methods.Apply.time_apply_np_mean
+      2.21±0.9μs       2.77±0.9μs     1.26  index_cached_properties.IndexCache.time_is_all_dates('TimedeltaIndex')
+     1.33±0.04ms      1.66±0.09ms     1.25  binary_ops.IntFrameWithScalar.time_frame_op_with_scalar(<class 'numpy.int64'>, 4, <built-in function eq>)
+     1.31±0.02ms       1.63±0.1ms     1.24  binary_ops.IntFrameWithScalar.time_frame_op_with_scalar(<class 'numpy.int64'>, 4, <built-in function le>)
+        1.30±0ms       1.61±0.2ms     1.24  binary_ops.IntFrameWithScalar.time_frame_op_with_scalar(<class 'numpy.int64'>, 4, <built-in function ge>)
+      1.80±0.1μs       2.12±0.4μs     1.18  index_cached_properties.IndexCache.time_shape('UInt64Index')
+      11.8±0.3ms       13.9±0.6ms     1.18  groupby.MultiColumn.time_col_select_numpy_sum
+         136±2ms        156±0.9ms     1.15  timeseries.ToDatetimeCache.time_dup_string_tzoffset_dates(False)
+     1.27±0.01ms      1.46±0.09ms     1.15  binary_ops.IntFrameWithScalar.time_frame_op_with_scalar(<class 'numpy.float64'>, 4, <built-in function ge>)
+     8.58±0.04ms       9.85±0.3ms     1.15  algorithms.FactorizeUnique.time_factorize(False, 'string')
+         275±7ms          316±5ms     1.15  timeseries.ToDatetimeISO8601.time_iso8601_tz_spaceformat
+       142±0.2ms         160±20ms     1.13  inference.ToNumericDowncast.time_downcast('string-int', 'float')
+     1.26±0.02ms      1.42±0.02ms     1.13  binary_ops.IntFrameWithScalar.time_frame_op_with_scalar(<class 'numpy.float64'>, 2, <built-in function le>)
+      2.55±0.4μs       2.87±0.2μs     1.13  index_cached_properties.IndexCache.time_values('IntervalIndex')
+      1.58±0.1μs       1.75±0.1μs     1.11  index_cached_properties.IndexCache.time_is_all_dates('MultiIndex')
+        641±30ns         710±30ns     1.11  index_cached_properties.IndexCache.time_is_monotonic_increasing('RangeIndex')
+     22.8±0.05μs         25.1±2μs     1.10  tslibs.offsets.OffestDatetimeArithmetic.time_apply(<CustomBusinessDay>)
-      7.76±0.8μs       7.05±0.3μs     0.91  index_cached_properties.IndexCache.time_engine('Float64Index')
-      2.06±0.2μs      1.87±0.01μs     0.90  tslibs.timestamp.TimestampOps.time_tz_convert(tzutc())
-     1.54±0.01ms      1.37±0.02ms     0.89  inference.NumericInferOps.time_divide(<class 'numpy.uint8'>)
-      5.30±0.1ms       4.71±0.1ms     0.89  index_object.SetOperations.time_operation('int', 'symmetric_difference')
-      13.2±0.2ms       11.7±0.1ms     0.89  groupby.Nth.time_series_nth('float32')
-       805±200μs         700±50μs     0.87  index_cached_properties.IndexCache.time_engine('MultiIndex')
-     12.8±0.06ms       11.1±0.1ms     0.87  multiindex_object.Integer.time_get_indexer
-      2.72±0.4μs      2.30±0.04μs     0.85  index_cached_properties.IndexCache.time_shape('DatetimeIndex')
-     6.39±0.07ms      5.34±0.03ms     0.84  frame_methods.Apply.time_apply_pass_thru
-         589±3ms          406±2ms     0.69  groupby.Transform.time_transform_lambda_max
-        7.16±3μs         4.56±2μs     0.64  index_cached_properties.IndexCache.time_engine('TimedeltaIndex')
-     1.64±0.03ms          962±5μs     0.59  frame_methods.Iteration.time_items_cached

```
closing to clear the queue, will reivisit after 1.0.2