Indentation cleanup.
Try to support PETSc 3.5.0 (in dev).

Most tests in 'make test' pass; one surprising exception is the bed
roughness parameterization regression test, which fails because
bedrough_test reports a different minimum theta value. I have no idea
what the cause is.

I did not even try to make Python wrappers work, since petsc4py does
not support PETSc 3.5 yet. (Neither does TAO.)

So, I think for now we should tell users to use PETSc 3.4.x (and update
PISM docs accordingly).

Note that I did not test this code with PETSc 3.3. (Should we try to
support PETSc 3.3.x?)

Here's what I had to do:

- Clobber "comparing signed to unsigned" warnings.

- Remove typedefs for DMDASNESSetFunctionLocal and
  DMDASNESJacobianLocal, which are evil (we should not define
  PETSc's objects).

- Fix PetscSynchronizedFlush calls (in 3.5 it has an extra argument)

- In PETSc 3.5 DMDA_BOUNDARY_PERIODIC was renamed to
  DM_BOUNDARY_PERIODIC.

- In 3.5 KSPSetOperators does not take a MatStructure argument.

- In 3.5 DMCreateMatrix does not take a matrix type argument.

- In 3.5 SNES (local) Jacobian computation callback does not have a
  MatStructure argument any more.

- In 3.5 DMDALocalToLocalBegin/End was renamed to
  DMLocalToLocalBegin/End.

- Do not wrap SSAFEJacobian and SSAFEFunction to avoid a
  compilation error.