Matrix Service: beginnings of revampinbg how tangent assembly is done

Hopefully this will provide a basis to rework how all physics'
matrix assembly is done. In previous development different methods
were used for each physics for assembly.

The matrix service provides temp storage for matrix values and
an API to the insertion calls (insertValues, sumIntoValues).

It also provides a registry for the boundary conditions. Rather than
assemble bc dofs and then zero them out, an array of bools is tested
before values are inserted.

Separate row and column arrays are stored so that columns from off
processor dofs are treated correctly.
Matrix Service: changes to get tests temporarily passing

This commit should be merged with the first one when finished
Extracted passes_through_a_notch as a free function

This function was repeated in all the peridynamics physics
Consolidation of Bond and Edge Based physics

A lot of this was copied code so now instead of having to
request a new physics, the user only has to specify the differentiation
scheme to be NEWTON_RAPHSON instead of CENTRAL_DIFFERENCE for
the bond_based peridynamics physics.
Consolidation of Bond and Mixed Peridynamics Physics
Consolidation of Bond and Newton Mixed Peridynamics Physics

At this point the bond based peridynamics physics has become a
catch all for the all the algorithmic experiments. It's not very
elegantly organized, but at least its all in one place. After
the best algorithm for the job gets sorted out, I intend to go
back over this code and stip out the lesser algorithms.
Remove overlap_neighbors_bc_flags

This is now managed by the matrix_service
Remove tangent_kinematic_bc_flags

This is now managed by the matrix_service
Moved create_bond out of physics to free function
Moved jacobians and graphs to base class physics
fixed typo DISPLACMENT to DISPLACEMENT

Tons of tests had to be reblessed because the field name
change diffs