DEPR: `DataFrame.to_html` in favour of `Styler.to_html`
The tracker of items needed to do before deprecating `DataFrame.to_html()`.

### Blockers

- [x] Acceptance of the `jinja2` requirement for HTML output, since `Styler` requires `jinja2`.
- [x] Acceptance of removal/hard break of specific kwargs and all formatting keyword args (see below).

### Development

- [x] make `Styler.to_html` as performant or better than `DataFrame.to_html` (#39972) (#40425) (#41269) 
- [x] make Styler functional for all DataFrames (i.e. including non-unique columns, indexes) (#41269).
- [x] enhance with ability to style indexes/column headers with styles (e.g bold rows) (#43149)
- [x] <s> enhance `.hide_columns` with `.show_columns` alternative (optional) </s> not necessary
- [x] add the sparsify kwargs (#41946).
- [x] add render trimming to prevent browser crash on large data (#41635)
- [x] decide whether to add or drop max_rows / max_cols / min_rows (#42972)
- [x] enhance `.hide_columns` and `.hide_index` to have dual function to hide the entire array, or specific items (#41266 #43771)
- [x] make styler reactive to separate sparse columns and index separately  (#41512)
- [ ] add pandas options for `styler` for default output manipulation, using `_repr_html_` methods (#41395)
- [ ] add the ability to render a a table_id even if exclude_styles is True (for back compat)
- [x] add the ability to hide index names #43346
- [ ] <s>add the `class="dataframe"` attribute by default for google colab </s> (https://github.com/googlecolab/colabtools/issues/1687)


### Treatment of Keyword Args

Old Keyword | New Keyword | Reason
--- | --- | ---
`buf` | `buf` | 
`encoding` | `encoding` | 
`table_id` | `table_uuid` |
`classes` | `table_attributes` | extended utility
`sparsify` | `sparse_index`<br>`sparse_columns` | more control of individual components
`max_rows`<br>`min_rows`<br>`max_cols` | `max_rows`<br>`max_columns` | `min_rows` removed since it is console related
`bold_rows` | `bold_headers` | included to allows some back compatability
... | `doctype_html` | adds ability to form a full HTML document or just `style` and `table` HTML elements.
... | `exclude_styles` | adds ability to more closely replicate `DataFrame.to_html` by dropping extra features.
... | `caption` | adds ability to set a caption on Styler from the calling method.
`na_rep`<br>`formatters`<br>`float_format`<br>`decimal`<br>`escape` | *removed* | replaced by `Styler.format(...)` which has more control
`columns`<br>`header`<br>`index` | *removed* | replaced by `Styler.hide_index(...)` and `Styler.hide_columns(...)`
`border` | *removed* | deprecated HTML should be controlled with CSS
`col_space` | *removed* | should be controlled with CSS, e.g. 'min-width: 100px;'
`render_links` | *removed* | not useful. only renders links identified as `http[...]`, not as sub part of string, i.e. `other http[...] text`. if required should be added to `Styler.format(...)`
`notebook` | *removed* | This seems to only provide minor alignment changes that should be controlled with other CSS
`show_dimensions` |  *removed* | This information is not needed in an HTML table of the DataFrame. `df.shape` provides the necessary workaround, and as a last resort `caption=f"dimension: {df.shape}"` displays the info.
`justify` | *removed* | since this is a styling arg which should be dealt with by other methods.
`index_names` | *removed* | assumed index names are removed from DataFrame if unwanted. As an alternative `hide_columns` could introduce a keyword argument to specifically hide the index names row.








