Vertex coordinates are now flattened, but we need them as double**
Do not assume transposed vectors when computing Jacobian
Bump version to 0.3.0
Optional argument flatten for Arg constructor and Dat call

Optional, defaults to False. Used to instruct the wrapper code
generator to treat the data dimensions of an Arg as flat s.t. the
kernel is passed a flat vector of length map.arity * data.dataset.cdim.
Implement generation of flattened kernel arguments

Only for host code generator.
Staged vector data per component for flattened Arg

FFC kernels access data per spatial dimension first and then per
basis function. This is the order we need to stage data in for vector
valued Dats (there is no difference for scalar Dats).
Implement flattening of Mat Args
Flatten vector Args in all FFC demos
Mark mass_vector_ffc regression tests as failing
Implement flattened Arg support for CUDA
Implement flattened Arg support for OpenCL
Implement flattened vector declaration for OpenMP
Merge pull request #233 from OP2/ffc-updates

Bring PyOP2 up-to-date with upstream FFC

* Introduces a flatten flag for Args, which instructs the code
  generator to flatten a vector field in the order expected by FFC
  generated kernels i.e. xxxyyy for a 2D vector on triangles when
  staging the data in and out for passing into the kernel.
* Introduces a pyop2_geometry header as the equivalent of the
  ufc_geometry header used by DOLFIN. Since we can't special case the
  coordinate field as is done in FFC (it is assumed to be stored xyxyxy
  as opposed to xxxyyy for other vector fields) the geometry header
  takes care of this transposition.

Note that this does *not* yet work for assembling vector-valued Dats
or Mats in FFC-generated kernels. The corresponding regression test
case is therefore xfailed.