ENH: more flexible describe() + tests

this patch adds a return_type keyword argument to describe() to make it more
flexible to use on mixed-type dataframe. User can now select among returning
numeric, categorical, or both, as well as 'auto' (previous behaviour, default),
and 'same', which keep columns identical (useful, e.g. with groupby())
do you mean the first sentence in the Notes part 'The output DataFrame index depends on the requested dtypes:'?

Further, it is already stated in the explanation of the include/exclude keywords in the Parameters section, but I don't think it is a problem to repeat that here, better to be very explicit about it. The way it is now phrased is just not correct in the default case, but only if you specify something with include/exclude