Protect against zero size dof dependence before libMesh constraints
Protect against zero size dof dependence before libMesh constraints

If we call `constrain_element_matrix` with zero size column indices then
we get errors out of BLAS. This was happening with global AD indexing
since global AD indexing in general only inserts nonzero degree of
freedom dependence.

Test to come. Necessary condition to trigger this error:
- using AD objects with global AD indexing when said objects may not
  have any nonlinear variable dependence (like `ADBodyForce`)
- Have some libmesh constraints like hanging nodes or periodic
  boundaries

Closes #17755

lindsayad/moose,harterj/moose,dschwen/moose,bwspenc/moose,sapitts/moose,idaholab/moose,laagesen/moose,nuclear-wizard/moose,lindsayad/moose,dschwen/moose,laagesen/moose,idaholab/moose,bwspenc/moose,SudiptaBiswas/moose,bwspenc/moose,milljm/moose,milljm/moose,lindsayad/moose,SudiptaBiswas/moose,jessecarterMOOSE/moose,milljm/moose,harterj/moose,dschwen/moose,jessecarterMOOSE/moose,harterj/moose,andrsd/moose,idaholab/moose,bwspenc/moose,jessecarterMOOSE/moose,nuclear-wizard/moose,harterj/moose,milljm/moose,idaholab/moose,sapitts/moose,jessecarterMOOSE/moose,lindsayad/moose,andrsd/moose,laagesen/moose,milljm/moose,dschwen/moose,laagesen/moose,nuclear-wizard/moose,SudiptaBiswas/moose,laagesen/moose,dschwen/moose,sapitts/moose,SudiptaBiswas/moose,SudiptaBiswas/moose,idaholab/moose,sapitts/moose,sapitts/moose,andrsd/moose,harterj/moose,jessecarterMOOSE/moose,bwspenc/moose,andrsd/moose,nuclear-wizard/moose,lindsayad/moose,andrsd/moose