API: make `hide_columns` and `hide_index` have a consistent signature and function in `Styler`
This closes #41158 (which is an alternative PR for similar functionality)

Currently `hide_index()` and `hide_columns(subset)` have similar signatures but **different** operations. One hides the index whilst showing the data-rows, and the other hides data-columns whilst showing the column-headers row.

### This PR

 - adds the `subset` keyword to give: `hide_index(subset=None)`.
 - sets the default to `hide_columns(subset=None)`.

When `subset` is None the function now operates to hide the entire index, or entire column headers row respectively.
When `subset` is not None it operates to selectively hide the given rows or columns respectively, keeping the index or column headers row.

<s>We also add the `show` keyword to allow the method to operate inversely.</s>

@jreback I think you will prefer this over the `hide_values` and `hide_headers` methods suggested in #41158 since this re-uses the existing methods with minimal changes but tries to align their consistency. It is also fully backwards compatible.
