Fix projection of Expressions

We need to interpolate into L2, not H1, before projecting, otherwise
things come out all wrong if the coordinate field is not H1.
Initial par_loop draft.

Initial sketch of Firedrake level par_loop.

Needs documentation, testing and debugging.
And now with passing test.
Add extruded test
Documentation
Response to reviewers

* Remove naughty and evil import *
* Spell RW and C correctly.
Merge pull request #213 from firedrakeproject/parloops

Parloops

This branch creates Firedrake level par_loops. This facilitates things like slope limiters and "Physics". See the extensive documentation below for more details.
Merge pull request #215 from firedrakeproject/fix/projection

Fix projection of Expressions
Add support for top and bottom facet zero form integrals.
Add support for extruded exterior facet integrals.
Add horizontal facet integral with temporary fix for avoiding double jacobian kernels.
Attempt to add interior vertical facets.
Interior facet integrals for zero forms.
Add changes to support the sparsity building for horizontal facets
Top, bottom and exterior vertical facets pass.
Tidy existing tests, and un-xfail
Laplace and Poisson tests for facets, using Neumann BCs
add interior facet stress tests (steady advection)
Eliminate extra global args not needed for new FFC kernel types.
Use ON_TOP, ON_BOTTOM instead of magic numbers.