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
Merge pull request #242 from OP2/vector-fs-assembly

Vector function space assembly on the host

Re-implement vector function space assembly on the host after the FFC update.