real-math: build math only; collect numeric type independent PETSc vector methods into a new vector wrapper class