Eliminate extrusion layer arg from kernel arg list.
Fixed extrusion unit test kernels to use the right number of args.
Fix extrusion demos.
Move extrusion loop outside iteration set loops.
Assembly support for the sequential backend added.
Iteration loop contains just kernel call and addto.
Unknown error on test_global_reduction.py.
Add pyop2_geometry.h and include in FFC-generated kernels

With FFC revision 1840, the UFC geometry computations (Jacobian and
its determinant and inverse) are not part of the generated kernel any
more but outsourced to a header file ufc_geometry.h. FFC generated
code for UFC targets is meant to include this header file.

We have our own version of this header file, pyop2_geometry.h, which
defines the functions from ufc_geometry.h as preprocessor macros. This
is necessary to get around the pass-by-reference semantics used for the
determinant in the generated kernels. It also saves us from having to
annotate all these functions with the correct classifiers for CUDA and
OpenCL.

Unfortnately we can no longer compile kernels with -Werror because FFC
kernels compute the Jacobian inverse regardless of whether it is later
used or not. This trigger the unused-variable warning.
RHS Test in firedrake now returns 0.
Add offset and layers to cmaps.

Modify sparsity to accept offset increment for extruded case.
Extruded sparsity changed for the mpi case.
Making assembly of extruded sparsities happen.
Add support for rhs-type iteration spaces.
OpenMP backend now supports extrusion.
Moved RHS matrix assembly unit test from matrices to extrusion.
Fix offset for extruded maps.
Changes to Sparsity.
Fix the extruded mesh RHS assembly.
Some cleaning up of host code generation

* c_map_name takes an optional argument indicating whether we want
  the row (0) or column map (1) for a Mat.
* Increment extruded maps by the offset for each layer rather than
  recomputing each time.
Merge pull request #231 from OP2/extrusion-firedrake

Extrusion firedrake

* Add functionality for dealing with iteration over extruded meshes
  in PyOP2.
* Adapt matrix and RHS assembly for the extrusion case by changing
  sparsity.
* Modifies kernel wrapper generation to deal with the application of
  extruded maps to sparsity objects.