CLN: ASV Algorithms benchmark
High Level changes:

- The `Algorithms` class benchmark was getting large so I broke it into several smaller classes, avoiding creating data structures in each `setup` call that would only be used for 1 benchmark.

- Added `np.random.seed(1234)` in `setup` classes where random data is created xref #8144

- Utilized `params` and `setup_cache` where applicable.

- Added additional hashing benchmarks

The benchmarks should be equivalent to what existed before. If the diff is too large I can break it up into smaller PRs. You can find 3 asv runs below. 

<details>

```
$ asv run -b ^algorithms -q

[  5.26%] ··· Running algorithms.Hashing.time_frame                                                     58.8ms
[ 10.53%] ··· Running algorithms.Hashing.time_series_categorical                                        15.6ms
[ 15.79%] ··· Running algorithms.Hashing.time_series_dates                                              10.3ms
[ 21.05%] ··· Running algorithms.Hashing.time_series_float                                              13.7ms
[ 26.32%] ··· Running algorithms.Hashing.time_series_int                                                11.0ms
[ 31.58%] ··· Running algorithms.Hashing.time_series_string                                             29.7ms
[ 36.84%] ··· Running algorithms.Hashing.time_series_timedeltas                                         13.4ms
[ 42.11%] ··· Running algorithms.AddOverflowArray.time_add_overflow_arr_mask_nan                        45.8ms
[ 47.37%] ··· Running algorithms.AddOverflowArray.time_add_overflow_arr_rev                             32.5ms
[ 52.63%] ··· Running algorithms.AddOverflowArray.time_add_overflow_b_mask_nan                          43.2ms
[ 57.89%] ··· Running algorithms.AddOverflowArray.time_add_overflow_both_arg_nan                        40.2ms
[ 63.16%] ··· Running algorithms.AddOverflowScalar.time_add_overflow_scalar                         25.8ms;...
[ 68.42%] ··· Running algorithms.Duplicated.time_duplicated_float                                       40.1ms
[ 73.68%] ··· Running algorithms.Duplicated.time_duplicated_int                                         26.3ms
[ 78.95%] ··· Running algorithms.DuplicatedUniqueIndex.time_duplicated_unique_int                        374μs
[ 84.21%] ··· Running algorithms.Factorize.time_factorize_float                                         27.8ms
[ 89.47%] ··· Running algorithms.Factorize.time_factorize_int                                           18.3ms
[ 94.74%] ··· Running algorithms.Factorize.time_factorize_string                                        52.3ms
[100.00%] ··· Running algorithms.Match.time_match_string                                                 902μs

asv run -b ^algorithms -q
[  5.26%] ··· Running algorithms.Hashing.time_frame                                                     58.7ms
[ 10.53%] ··· Running algorithms.Hashing.time_series_categorical                                        12.4ms
[ 15.79%] ··· Running algorithms.Hashing.time_series_dates                                              9.24ms
[ 21.05%] ··· Running algorithms.Hashing.time_series_float                                              9.53ms
[ 26.32%] ··· Running algorithms.Hashing.time_series_int                                                9.53ms
[ 31.58%] ··· Running algorithms.Hashing.time_series_string                                             29.1ms
[ 36.84%] ··· Running algorithms.Hashing.time_series_timedeltas                                         9.57ms
[ 42.11%] ··· Running algorithms.AddOverflowArray.time_add_overflow_arr_mask_nan                        47.3ms
[ 47.37%] ··· Running algorithms.AddOverflowArray.time_add_overflow_arr_rev                             26.5ms
[ 52.63%] ··· Running algorithms.AddOverflowArray.time_add_overflow_b_mask_nan                          38.9ms
[ 57.89%] ··· Running algorithms.AddOverflowArray.time_add_overflow_both_arg_nan                        39.6ms
[ 63.16%] ··· Running algorithms.AddOverflowScalar.time_add_overflow_scalar                         24.2ms;...
[ 68.42%] ··· Running algorithms.Duplicated.time_duplicated_float                                       40.1ms
[ 73.68%] ··· Running algorithms.Duplicated.time_duplicated_int                                         28.5ms
[ 78.95%] ··· Running algorithms.DuplicatedUniqueIndex.time_duplicated_unique_int                        450μs
[ 84.21%] ··· Running algorithms.Factorize.time_factorize_float                                         31.6ms
[ 89.47%] ··· Running algorithms.Factorize.time_factorize_int                                           18.6ms
[ 94.74%] ··· Running algorithms.Factorize.time_factorize_string                                        56.0ms
[100.00%] ··· Running algorithms.Match.time_match_string                                                 788μs

asv run -b ^algorithms -q
[  5.26%] ··· Running algorithms.Hashing.time_frame                                                     57.4ms
[ 10.53%] ··· Running algorithms.Hashing.time_series_categorical                                        13.3ms
[ 15.79%] ··· Running algorithms.Hashing.time_series_dates                                              12.5ms
[ 21.05%] ··· Running algorithms.Hashing.time_series_float                                              9.70ms
[ 26.32%] ··· Running algorithms.Hashing.time_series_int                                                9.27ms
[ 31.58%] ··· Running algorithms.Hashing.time_series_string                                             30.0ms
[ 36.84%] ··· Running algorithms.Hashing.time_series_timedeltas                                         15.8ms
[ 42.11%] ··· Running algorithms.AddOverflowArray.time_add_overflow_arr_mask_nan                        40.5ms
[ 47.37%] ··· Running algorithms.AddOverflowArray.time_add_overflow_arr_rev                             25.5ms
[ 52.63%] ··· Running algorithms.AddOverflowArray.time_add_overflow_b_mask_nan                          38.7ms
[ 57.89%] ··· Running algorithms.AddOverflowArray.time_add_overflow_both_arg_nan                        44.5ms
[ 63.16%] ··· Running algorithms.AddOverflowScalar.time_add_overflow_scalar                         20.3ms;...
[ 68.42%] ··· Running algorithms.Duplicated.time_duplicated_float                                       45.3ms
[ 73.68%] ··· Running algorithms.Duplicated.time_duplicated_int                                         33.3ms
[ 78.95%] ··· Running algorithms.DuplicatedUniqueIndex.time_duplicated_unique_int                        332μs
[ 84.21%] ··· Running algorithms.Factorize.time_factorize_float                                         26.2ms
[ 89.47%] ··· Running algorithms.Factorize.time_factorize_int                                           18.5ms
[ 94.74%] ··· Running algorithms.Factorize.time_factorize_string                                        55.5ms
[100.00%] ··· Running algorithms.Match.time_match_string                                                 800μs
```

</details>


