Invert inheritance order in Constraint-based contact classes

Derek, could you take a look at this?  I think this is the right inheritance order.  I still need to pull out the code that fills the dof indices into a separate method.