Vector Expressions
Pass flatten=True for all par_loop Arguments

The coefficients in the form were missed in the great flatten change.
Add test solving identity problem on VectorFunctionSpace
Add (failing) parallel test of vector function space assembly
Remove invalid expression tests

UFL doesn't allow one to apply scalar operators (such as ln) to
VectorFunctionSpaces, so now we have the correct ufl_element, these are
no longer expected to work.
Fix building VectorFunctionSpaces on extruded meshes

We need to build an OuterProductVectorElement not a VectorElement in
this case.
Report error if assembling vector functions in parallel

These require more work, so present a reasonable error message rather
than silently producing wrong results.
Support writing vector fields to VTK files
Merge pull request #23 from firedrakeproject/vector-function-spaces

Make vector function spaces work to the following extent

1. Adds support Expressions and writing vector fields to VTK files.

2. Assembly of identity problems works, but not in parallel.
   The problem here is that we need changes in PyOP2 to assemble
   vector fields (the local to global map is not correct for our current
   choice of AIJ matrices).  This is motivation to switch to BAIJ, see
   OP2/PyOP2#244

3. The change of the ufl_element on a VectorFunctionSpace from a
   FiniteElement to a VectorElement breaks all the extruded stuff,
   because we can no longer build the coordinate field (a vector
   function space) on an extruded mesh, because UFL doesn't know
   how to build a Lagrange field on an OuterProductCell.