Fix the application of krylov_solver parameters in PETScSNESSolver.

Suppose someone calls

solve(F == 0, ..., solver_parameters=sp)

with

sp = {"nonlinear_solver": "snes",
      "snes_solver": {"krylov_solver": {"absolute_tolerance": 1.0e-99}}}

The options under "krylov_solver" weren't being applied previously.
Some more improvements to the options handling in PETScSNESSolver.
Merge branch 'master' into pefarrell/fix-snes-ksp-solver-tolerances

Conflicts:
	dolfin/nls/PETScSNESSolver.cpp
Minor formatting fixes.
Ignore python wrapping of:

  PETScPreconditioner::near_nullspace

as it causes uncompilable code together with petsc4py.

Fixes issue #205.
Merge branch 'johanhake/fix-issue-205'