CLN: clean color selection in _matplotlib/style
- [ ] closes #xxxx
- [ ] tests added / passed
- [ ] passes `black pandas`
- [ ] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [ ] whatsnew entry

There was a comment in the top of the module that the code was a bit too dynamic.
The logic in the function was too complex.

I refactored the code
 - Extract functions
 - Simplify logic
 - Add type annotations

Note: there is one issue with mypy, which I do not know how to handle. Currently I suggested to ignore the error.