CLN: refactor `Styler._translate` into composite translate functions
This composites `Styler._translate()` into:

```
def _translate():
    ...
    self._translate_header()
    ...
    self._translate_body()
    ...
```

where the `_translate_header()` and `_translate_body()` methods are given some documentation explaining what they are building. The code is not fundamentally changed, but variable names are renamed to add clarity to match the documentation and loop comprehensions replace `for loops` where possible.

Some tests are minimally altered since the generic `_element` method now returns more dict keys for some elements.
is there a `_translate_footer()` (maybe currently unused)? > is there a `_translate_footer()` (maybe currently unused)?

No because the html element `<tfoot>` is not used in the jinja2 templates. 

It might be useful for *easily* adding styling of a `totals` row for example in the future, albeit can be done currently, its just not that *easy*. thanks @attack68 