ENH: Better handling of MultiIndex with Excel

Allow optional formatting of MultiIndex and Hierarchical Rows
as merged cells. closes #5254.

Some notes on this PR:

* The required xlsxwriter version was up-revved in `ci/requirements*.txt`to pick up a fix in that module that makes working with charts from pandas easier.
* Added a comment to `release.rst`.
* Modified `format.py` to format MultiIndex and Hierarchical Rows as merged cells in Excel. The old code path/option is still available. The new formatting must be explicitly invoked via the `merge_cells` option in `to_excel`:

```python
df.to_excel('file.xlsx', merge_cells=True)
```
* The `merge_cells` option can be renamed if required. During development I also used `multi_index` and `merge_range`.
* Updated the API and docs in `frame.py` to reflect the new option.
* Fixed openpyxl merge handling in `excel.py`.
* Modified the `test_excel.py` test cases so that they could be used to test the existing `dot notation` or the new `merge_cells` options for MultiIndex and Hierarchical Rows handling.
* Did some minor PEP8 formatting to the `test_excel.py`.