Support bcs with multiple regions in _needs_reassembly

This check was previously assuming that a DirichletBC only has a
single integer as its sub_domain.
Add test for matrix assembly with multi-domain bc
Merge pull request #291 from firedrakeproject/fix/bcs-with-multiple-regions

Support bcs with multiple regions in _needs_reassembly

This check was previously assuming that a DirichletBC only has a
single integer as its sub_domain. Also add a test for it.