Include pyop2_geometry.h md5 hash in FFC kernel cache key
Add compute_{min,max}_facet_edge_length_tetrahedron_3d
Merge pull request #283 from OP2/compute-facet-edge-length

Add compute_{min,max}_facet_edge_length_tetrahedron_3d

These functions are required in FFC kernels to compute normals in 3D.

Also add an md5 hash of pyop2_geometry.h to the FFC kernel cache to
make it a little more robust.
Adjust buffer size
Purge extents argument to IterationSpace constructor

It's unncessary since it can be reconstructed from the block shapes.
This also avoid an inconsistency in the way the extents were
previously determined: we were taking the tuple of arities of the
maps of the last argument, which is wrong if not every arg uses the
same map.

While at it, consistently name variables that refer to the block
shape block_shape.
Iterate over the map arity instead of IterationSpace extent

If we have a vector-valued Dat, the extent will be scaled by the
vector length and therefore overrun the map arity.
Fix buffer size estimation
Merge origin/purge-itspace-extents-argument