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`.
