Add dtype argument to Function

Allows construction of fields with non-default data type.
Build cell orientations as DG0 field

Rather having a special cell orientation Dat that lives on cells, just
build it as a normal field, excepting that it has an int datatype.  This
simplifies our life enormously when passing cell orientations for
non-cell integrals.
Bump compatible FFC version
Test co- and contravariant facet integrals on manifolds

We should be able to assemble facet integrals in H(div) and H(curl)
spaces on embedded manifolds.  Test this by assembling an interior facet
integral with positive and negative restrictions and assert that it sums
to zero.
Merge pull request #277 from firedrakeproject/more-cell-orientation

Use DG0 field to hold cell orientations and pass in to kernels for facet
integrals as well as cell integrals.
Rename ir into coffee
Rename coffee's optimizations