Moved KSPCreate to the Data constructor

This is where it was always intended to be called, so this fixes a mistake in
earlier development.
Fixes performance bug in matrix construction.

At the same time changes the construction to be value-oriented, not
constructing it in OEM_DATA, but rather in to_petsc_mat
Removes unecessary whitespace.
Vector construction is now value oriented.

No longer initialised and constructed in two places.
Renamed variables to match Ax = b
Adds missing preconditoner destruction.