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