Split the SNES solve into setup and solve.

This is useful for people who want to configure the underlying SNES
directly.
A fix for deallocated memory; the bug was introduced in the setup/solve split

Conflicts:
	dolfin/nls/PETScSNESSolver.h
Rename setup to init on Garth's suggestion.
Update for PETSc change (SNES_VI_INF -> PETSC_INFINITY)
Make snes_ctx_t private again.
Fix detection of ParMETIS and SCOTCH from PETSc

So far the detection only worked in case that PETSc was installed using
`make install'. With this commit we also detect the libraries in case
that PETSC_DIR points to the source directory and PETSC_ARCH is
correctly set.
Merge branch 'pefarrell/snes-split-solve-and-init'
Merge branch 'mliertzer/fix-petsc-hints'