BUG: styler multiindex hiding indexes and columns alignment
#### Follows #43686

- [x] closes #43637 
- [x] closes #43644
- [x] closes #43703
- [x] tests added / passed
- [x] whatsnew entry (note part of the bug seems to have been created by hiding `levels` which is a new feature in 1.4.0).

This PR has two parts:

1) Addressing the bug fixes as per above.

The key change made here was to add a single line: `if r not in self.hidden_rows:` in the loop, and in `_translate_latex` update for the new object structure that is input to it.

2) Refactoring the code so that the main part of the code is now easier to grok:

```
def _translate(...):
    # calls _translate_header()
    # callls _translate_body()

def _translate_header(...):
   # calls _generate_col_header_row()
   # calls _generate_index_names_row()

def _translate_body(...):
   # calls _generate_trimmed_row()
   # calls _generate_body_row()
```







And tests were update and comprehensive tests for the issues added.