PERF: perf improvments in dtypes/ftypes methods (GH5968)
closes #5968

```
-------------------------------------------------------------------------------
Test name                                    | head[ms] | base[ms] |  ratio   |
-------------------------------------------------------------------------------
frame_dtypes                                 |   0.2654 |  51.2140 |   0.0052 |
frame_wide_repr                              |  17.1947 | 525.7313 |   0.0327 |
-------------------------------------------------------------------------------
Test name                                    | head[ms] | base[ms] |  ratio   |
-------------------------------------------------------------------------------

Ratio < 1.0 means the target commit is faster then the baseline.
Seed used: 1234

Target [6a7bfc1] : PERF: perf improvments in dtypes/ftypes methods (GH5968)
Base   [2081fcc] : Merge pull request #5951 from y-p/PR_latest_ipython_rep_fixes

CLN: repr_html raises NotImplementedError rather then ValueError in qtconsole
```

@y-p 200x improvement good enough?
only 60x on repr though :)
 c'mon, admit it, this was silly.

Are there any unintended wins in vbench?
 Not sure how many of these are real

```
-------------------------------------------------------------------------------
Test name                                    | head[ms] | base[ms] |  ratio   |
-------------------------------------------------------------------------------
frame_dtypes                                 |   0.2654 |  51.2140 |   0.0052 |
frame_wide_repr                              |  17.1947 | 525.7313 |   0.0327 |
series_constructor_ndarray                   |   0.0187 |   0.0390 |   0.4786 |
ctor_index_array_string                      |   0.0190 |   0.0384 |   0.4948 |
frame_constructor_ndarray                    |   0.0526 |   0.1007 |   0.5225 |
frame_from_series                            |   0.0987 |   0.1736 |   0.5684 |
frame_mult_eval                              |  10.8016 |  14.7330 |   0.7332 |
groupby_simple_compress_timing               |  24.9940 |  32.8907 |   0.7599 |
stat_ops_frame_sum_float_axis_0              |   0.6049 |   0.7937 |   0.7622 |
eval_frame_mult_python_one_thread            |  15.7140 |  20.6140 |   0.7623 |
frame_fancy_lookup_all                       |  16.2097 |  20.5374 |   0.7893 |
frame_multi_and                              |  21.8519 |  26.2030 |   0.8339 |
frame_add_python                             |  17.2369 |  20.5804 |   0.8375 |
frame_multi_and_st                           |  34.5450 |  40.8956 |   0.8447 |
groupby_last                                 |   3.2523 |   3.8413 |   0.8467 |
frame_mult_no_ne                             |   5.0566 |   5.9433 |   0.8508 |
reshape_pivot_time_series                    | 146.4167 | 168.8253 |   0.8673 |
strings_upper                                |   3.1710 |   3.6550 |   0.8676 |
groupby_first_float32                        |   3.1704 |   3.6493 |   0.8688 |
frame_fillna_many_columns_pad                |  12.5023 |  14.2899 |   0.8749 |
frame_add_st                                 |   5.1564 |   5.8897 |   0.8755 |
frame_mult                                   |   5.1339 |   5.8590 |   0.8763 |
groupby_last_float32                         |   3.3393 |   3.7950 |   0.8799 |
eval_frame_mult_one_thread                   |  10.8674 |  12.2437 |   0.8876 |
strings_title                                |   3.3987 |   3.7936 |   0.8959 |
packers_read_pack                            |   2.4300 |   2.7023 |   0.8992 |
timestamp_ops_diff1                          |   8.3516 |   9.2863 |   0.8993 |
frame_and_eval                               |   7.7877 |   8.6577 |   0.8995 |
query_datetime_series                        |  19.9830 |  22.1897 |   0.9006 |
```
