PERF: performance regressions in 0.20.dev
Comparing 0.19.2 with the latest master, and using a factor of 1.5 as threshold, I get those:

```
Benchmarks that have got worse:

    before     after       ratio
  [6f525eec] [f880728d]
+    1.50ms     6.70ms      4.46  algorithms.Hashing.time_series_categorical
+  112.62ms   217.37ms      1.93  frame_methods.frame_duplicated.time_frame_duplicated_wide
+   11.56ms    20.40ms      1.76  groupby.GroupBySuite.time_unique('float', 100)
+     1.09s      1.95s      1.78  groupby.GroupBySuite.time_unique('float', 10000)
+    7.71ms    13.28ms      1.72  groupby.GroupBySuite.time_unique('int', 100)
+  672.77ms      1.22s      1.82  groupby.GroupBySuite.time_unique('int', 10000)
+    5.81ms     9.45ms      1.63  groupby.groupby_categorical.time_groupby_nosort
+   16.47ms    36.74ms      2.23  groupby.groupby_period.time_groupby_sum
+   46.41ms   127.96ms      2.76  inference.to_numeric_downcast.time_downcast('int-list', 'float')
+   56.87ms   138.24ms      2.43  inference.to_numeric_downcast.time_downcast('int-list', 'integer')
+   56.60ms   138.73ms      2.45  inference.to_numeric_downcast.time_downcast('int-list', 'signed')
+   57.44ms   143.97ms      2.51  inference.to_numeric_downcast.time_downcast('int-list', 'unsigned')
+   46.16ms   127.57ms      2.76  inference.to_numeric_downcast.time_downcast('int-list', None)
+    9.34μs   258.21μs     27.64  inference.to_numeric_downcast.time_downcast('int32', 'float')
+   78.55ms   148.25ms      1.89  inference.to_numeric_downcast.time_downcast('string-float', 'float')
+   80.55ms   148.59ms      1.84  inference.to_numeric_downcast.time_downcast('string-float', 'integer')
+   76.44ms   149.57ms      1.96  inference.to_numeric_downcast.time_downcast('string-float', 'signed')
+   76.39ms   148.51ms      1.94  inference.to_numeric_downcast.time_downcast('string-float', 'unsigned')
+   75.79ms   148.09ms      1.95  inference.to_numeric_downcast.time_downcast('string-float', None)
+  147.06ms   273.70ms      1.86  inference.to_numeric_downcast.time_downcast('string-int', 'float')
+  156.82ms   295.98ms      1.89  inference.to_numeric_downcast.time_downcast('string-int', 'integer')
+  157.41ms   281.58ms      1.79  inference.to_numeric_downcast.time_downcast('string-int', 'signed')
+  157.77ms   279.80ms      1.77  inference.to_numeric_downcast.time_downcast('string-int', 'unsigned')
+  146.58ms   269.75ms      1.84  inference.to_numeric_downcast.time_downcast('string-int', None)
+  148.72ms   266.83ms      1.79  inference.to_numeric_downcast.time_downcast('string-nint', 'float')
+  157.92ms   271.05ms      1.72  inference.to_numeric_downcast.time_downcast('string-nint', 'integer')
+  156.89ms   275.78ms      1.76  inference.to_numeric_downcast.time_downcast('string-nint', 'signed')
+  147.16ms   261.84ms      1.78  inference.to_numeric_downcast.time_downcast('string-nint', 'unsigned')
+  147.07ms   261.70ms      1.78  inference.to_numeric_downcast.time_downcast('string-nint', None)
+  717.85μs     3.68ms      5.13  sparse.sparse_arithmetic_block.time_sparse_addition
+  755.98μs     3.69ms      4.87  sparse.sparse_arithmetic_block.time_sparse_addition_zero
+  767.81μs     3.85ms      5.02  sparse.sparse_arithmetic_block.time_sparse_division
+  807.16μs     3.73ms      4.63  sparse.sparse_arithmetic_block.time_sparse_division_zero
+  599.17μs     3.53ms      5.89  sparse.sparse_arithmetic_block.time_sparse_make_union
+   13.96ms    40.68ms      2.91  sparse.sparse_arithmetic_int.time_sparse_addition_10percent
+   11.76ms    37.95ms      3.23  sparse.sparse_arithmetic_int.time_sparse_addition_10percent_zero
+    1.13ms     4.10ms      3.61  sparse.sparse_arithmetic_int.time_sparse_addition_1percent
+   14.54ms    41.21ms      2.83  sparse.sparse_arithmetic_int.time_sparse_division_10percent
+   12.29ms    38.60ms      3.14  sparse.sparse_arithmetic_int.time_sparse_division_10percent_zero
+    1.20ms     4.11ms      3.42  sparse.sparse_arithmetic_int.time_sparse_division_1percent
+    1.36ms     2.71ms      1.99  sparse.sparse_arithmetic_int.time_sparse_intersect
+   12.51ms    39.08ms      3.12  sparse.sparse_arithmetic_int.time_sparse_make_union
+   18.39μs    87.47μs      4.76  timeseries.AsOfDataFrame.time_asof_single_early
```

I don't think there are real blockers for 0.20, but the sparse (cc @sinhrks) and `to_numeric` downcast (cc @gfyoung) seem to be systematically slower