Optimize KSPCG to perform only two reductions
KSPCG does three reductions by default, in either PRECONDITIONED or UNPRECONDITIONED norm (though only two in NATURAL norm). The norm could be made to piggy-back on one of the dot products. Before doing this, it may be useful to split the
-ksp_cg_single_reduction code path out into a separate function in order to make the code less messy.