Merge pull request #3563 from jreback/GH3561

BUG: (GH3561) non-unique indexers with a list-like now return in the same order as the passed values
Merge pull request #3600 from jreback/modulo

BUG:  Fix integer modulo and division to make integer and float dtypes work similarly for invalid values
ENH: to_csv write multi-index columns similar to how they are displayed in to_string
ENH: Allow read_csv to handle multi-index in columns

     GH3571, GH1651, GH3141
TST: more test cases

ENH: catching some invalid option combinations

BUG: fix as_recarray

DOC: io.rst updated
ENH/CLN: refactor to support PythonParser as well as CParser
BUG: unnamed columns in a multi-index will be named like: Unamed 2_level_0, so they are not duplicated

ENH: add options ``multi_index_columns_compat`` both to to_csv and read_csv (default is False),

    to force (when True) the previous behavior of creating a list of tuples (when writing), and
    reading as a list of tuples (and NOT as a MultiIndex)

DOC: add compat flags to io.rst
DOC: updated releasenotes, v0.11.1 whatsnew, io.rst

CLN: changed formatting option: multi_index_columns_compat -> tupleize_cols

BUG: incorrectly writing sparse levels for the multi_index
DOC: slight docs changes

TST: added tests/fixes for dissallowed options in to_csv (cols=not None,index=False)

TST: from_csv not accepting tupleize_cols
ENH: allow index=False in to_csv with a multi_index column

     allow reading of a multi_index column with with index_col=None

DOC: updates to examples in io.rst and v0.11.1.rst