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.