sPuReMD: fix bug in GMRES where vector inputs and outputs to apply_preconditioner were being overwritten. Refactor OpenMP code in GMRES.