[MRG] better Pandas support.

Don't convert dataframes in grid search and cross-validation.

If we can agree on this, I'll
* [x] add tests
* [x] rename allow_lists to force_array (and invert the meaning). It's an internal parameter anyhow. 
Please add a:

    def __array__(self):
        # Pandas data frames also are array-like: we want to make sure that
        # when `check_arrays` with `force_arrays=False` does not try to call that
        # method.
        return self.array