type diversity breaks alignment

closes https://github.com/pydata/pandas/issues/8258, but more generally, on pandas master, assignment with indexer will align _both rows and columns_ if all columns have the same type:

    >>> cols, idx = ['jim', 'joe', 'jolie'], ['first', 'last']
    >>> vals = np.arange(1, 7).reshape(2, 3, order='F')
    >>> df = DataFrame(vals, columns=cols, index=idx)
    >>> left, rhs = df.copy(), - df.iloc[::-1, -2::-1]
    >>> print(left, rhs, sep='\n')
           jim  joe  jolie
    first    1    3      5
    last     2    4      6
           joe  jim
    last    -4   -2
    first   -3   -1
    >>> 
    >>> left.loc[:, ['jim', 'joe']] = rhs
    >>> left
           jim  joe  jolie
    first   -1   -3      5
    last    -2   -4      6

However, if I change the type of a column even _outside_ the section which gets assigned to, _only columns_ are aligned:

    >>> df = DataFrame(vals, columns=cols, index=idx)
    >>> df['jolie'] = df['jolie'].astype('float64')
    >>> left, rhs = df.copy(), - df.iloc[::-1, -2::-1]
    >>> print(left, rhs, sep='\n')
           jim  joe  jolie
    first    1    3      5
    last     2    4      6
           joe  jim
    last    -4   -2
    first   -3   -1
    >>> 
    >>> left.loc[:, ['jim', 'joe']] = rhs
    >>> left
           jim  joe  jolie
    first   -2   -4      5
    last    -1   -3      6


Code-wise this is a bug, because [this line](https://github.com/pydata/pandas/blob/fccd7feabfe0bf15c30d712f3a4a4ff71e76ad4a/pandas/core/indexing.py#L446) is taking the _entire frame_'s index and re-indexes to that, regardless of the actual indexer which selects a section of the frame to assign to. That said, there are two places in tests where they rely on this behaviour, [here](https://github.com/pydata/pandas/blob/fccd7feabfe0bf15c30d712f3a4a4ff71e76ad4a/pandas/tests/test_frame.py#L1405) and [here](https://github.com/pydata/pandas/blob/fccd7feabfe0bf15c30d712f3a4a4ff71e76ad4a/pandas/tests/test_indexing.py#L1033).
you need to explain why this tests is invalid (and simply delete it), or fix your code to deal with this case