Preconditioner and Tolerance Consistency Fix

There are a few small fixes here.

* Corrects application of preconditioners to ```P\x``` in cg and gmres.
* Adds preconditioner tests using ```Cholesky``` and ```LU``` factorization types
* Changes default initial guess for cg and gmres to ```zerox(A,b)```
* Tolerances for cg, gmres, chebyshev, jacobi, gauss_siedel, sor, and ssor are normalized to ```norm(b)```