Fix DataFrame.to_latex() with MultiIndex columns

Currently, the positioning of \midrule is determined by the number of index
levels, not columns levels:

	>>> print pd.DataFrame({('x', 'y'): ['a']}).to_latex()
	\begin{tabular}{ll}
	\toprule
	{} &  x \\
	\midrule
	{} &  y \\
	0 &  a \\
	\bottomrule
	\end{tabular}

The fix is simple: use the number of column levels instead of the number
of index levels.
Merge pull request #7982 from shoyer/fix-to_latex-multicolumn

Fix DataFrame.to_latex() midrule positioning with MultiIndex columns
TST: platform indexing, xref GH8007
DOC: show min supported version of numexpr is 2.1
PERF: StataReader is slow

StataReader does not make use of vectorized operations.

To improve performance, the following changes have been made:

* Use numpy.frombuffer to real the stored data in a single operation
* Vectorize date conversion
* Removal of unreachable private functions

A test was added to verify the conversion of dates that are out of the range
supported by datetime64[ns]
Merge pull request #8073 from bashtage/stata-read-batching

PERF: StataReader is slow
TST: platform indexing, xref GH8007
BUG: rolling_count() and expanding_*() with zero-length args; rolling/expanding_apply() with min_periods=0