Construct Mat Args using SparsityMaps where necessary

If the sparsity was built with restricted
domains (e.g. ON_INTERIOR_FACETS), we need to inform the Arg call when
build a Mat tensor argument, otherwise we get ALL (even though we're
actually not going to iterate over the whole map) passed in to the Arg
checker and we get complaints.  To fix this, build the appropriate Args
using SparsityMaps (as well as in the Mat construction and par_loop
iterate keyword).
Merge pull request #340 from firedrakeproject/moar_sparsitymap

* moar_sparsitymap:
  Construct Mat Args using SparsityMaps where necessary
Pass mesh generator options for 2D meshes

This means we actually produce regular meshes (rather than just a
delauney triangulation with starting from specified seed points).