Allow assignment into non-mixed FSes from indexed MFSes

Previously, it was not possible to write:

    V = FunctionSpace(...)
    W = V*V
    w = Function(W)
    v = Function(V)
    w1, w2 = w.split()

    v.assign(w1)
    v.assign(w2)

Despite the function spaces being compatible.  It turns out to be quite
simple to allow, so do so.
O's FS must match self._fs (us)