Use solver_parameters to set options in nonlinear solve

The solver_parameters argument should be a dict mapping PETSc options
to values.  For example, to set the SNES type to ksponly:

    solve(..., solver_parameters={'snes_type' : 'ksponly'})
Add option to pass solver parameters into nonlinear Helmholtz test

Additionally, don't return untested l2_diff array, but rather just the
convergence ratios.
Add test of solver option setting

We set the SNES type to ksponly, and except that the problem fails to
converge to the correct values.  Therefore check that the convergence
ratios are bad.
Ensure linear problem gets solved correctly by SNES

A linear problem should be solved in one Newton-Krylov iteration if
the inner linear solve is sufficiently accurate.  Test for this by
solving the linear Helmholtz problem using a SNES type of ksponly, and
using direct factorisation to solve the linear system.