suzerain: #3012 draft OOPish version

This handles some of the mundane tracking that would have
been pushed in the N--S nonlinear RHS.  Nicer to have
stored in one spot.

git-svn-id: https://svn.ices.utexas.edu/repos/pecos/suzerain/trunk@44516 0bd85f0b-c151-43b9-a1e9-27231104551f