ENH: Add 'add_metaclass' class decorator.

Taken from a new addition to the six library (again, license is in the
LICENSE directory).
CLN: Make ExcelWriter more pluggable

Make ExcelWriter an ABC and add ExcelWriter config to core/config_init

ENH: Allow Panel.to_excel to pass keyword arguments
Merge pull request #4750 from jtratner/refactor-excel-writer

CLN: Make ExcelWriter more pluggable
BUG: allow DataFrame constructor to accept more list-like objects, e.g. list of
    `ollections.Sequence and array.Array objects (GH3783 and GH42971)
TST: explicity tests for iterator/generator types in DataFrame/Series construction

ENH: add generator support in DataFrame constructor
Merge pull request #4829 from jreback/seq

ENH/API: allow DataFrame constructor to better accept list-like collections (GH3783,GH4297)
BUG: Fix compressed files in Py3 to return str

Fixed bug with reading compressed files in as `bytes` rather than
`str` in Python 3. `gzip` and `bz2` both now return `bytes` rather
than `str` in Python 3, so just needed to wrap them in an
`io.TextIOWrapper` to make everything work.

Only wrap BytesIO and compressed streams

Read entire compressed file in 3.2 to get around inconsistencies with TextIOWrapper
Merge pull request #4783 from jtratner/wrap-compressed-fileobjects-in-py3

BUG: Fix input bytes conversion in Py3 to return str
BUG/VIS: correctly test for yaxis ticklocs across different versions of MPL
CI: use mpl 1.3.0 in LOCALE build
Merge pull request #4832 from cpcloud/fix-bar-log

BUG/VIS: correctly test for yaxis ticklocs across different versions of MPL
ENH: DataFrame constructor now accepts a numpy masked record array (GH3478)
Merge pull request #4836 from jreback/mra

ENH: DataFrame constructor now accepts a numpy masked record array (GH3478)