CI, TST enable branch coverage
- [x] Ensure all linting tests pass, see [here](https://pandas.pydata.org/pandas-docs/dev/development/contributing.html#code-standards) for how to run them

As suggested on Gitter - this could help identify more untested parts of the codebase and hence uncover bugs

What does "branch" coverage exactly mean? @jorisvandenbossche here's an example:

```python
# t.py

def main(foo: bool):

    a = 0

    if foo:
        a += 1
    print(a)
```

```python
# test_t.py

from t import main


def test_main():
    main(True)
```

Notice how we have never tested the case where `foo` was `False`. But, if we run `pytest` with `branch=False`, it gives us 100% coverage - indeed, all lines were covered
```bash
---------- coverage: platform linux, python 3.7.10-final-0 -----------
Name    Stmts   Miss  Cover   Missing
-------------------------------------
t.py        5      0   100%
-------------------------------------
TOTAL       5      0   100%
```

However, if we run it with `branch=True`, then it picks up on the fact that we never went from line 5 directly to line 7 - we always went down the line 5->6->7 route:
```bash
---------- coverage: platform linux, python 3.7.10-final-0 -----------
Name    Stmts   Miss Branch BrPart  Cover   Missing
---------------------------------------------------
t.py        5      0      2      1    86%   5->7
---------------------------------------------------
TOTAL       5      0      2      1    86%
```

Hence, this can help identify untested parts of the codebase Ah, thanks for the explanation! thanks @MarcoGorelli 