Treat flattened Args that use iteration spaces correctly

We need to modify the extent of the iteration space for a flattened arg,
and change the matrix assembly code slightly to account for it. These
changes are necessary to allow assembly over vector function spaces in
Firedrake.
xfail mass_vector_ffc test only for cuda/opencl