Try to support PETSc 3.5.0.

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.
Clarify that the range of PETSc versions that work for 0.6 is:  3.3.0 <= version <= 3.4.5.
Implement "-atmosphere one_station" in 0.6.

This atmosphere model reads scalar time-series of the near surface air
temperature and precipitation and uses them at all grid points in the
domain. Resulting climate fields are constant in time *unless* a
modifier such as lapse_rate is used to create spatial variability.

Use "-atmosphere_one_station_file" to specify the name of the file
containing "air_temp" and "precipitation" variables.
Fix ice discharge reporting. Port to 0.6.

We report discharge by keeping track of changes to ice
thickness (corresponds to calving off a whole column of ice) and
Href (corresponds to calving of a fraction of a column). The problem is
that changes in Href *may* also correspond to the advance of the calving
front, which is *not* associated with mass loss.

So, from now on we check if Href increased. If it did, Href's
contribution to ice discharge is zero.
Don't look for TAO if PETSc is recent enough (>= 3.5.0) (in 0.6).
Specify units in a doxygen comment.
Sort out units of the shelf base mass flux.

We need to convert from [kg m-2 s-1] to [m s-1] in a number of places.
Revert "Try to support PETSc 3.5.0."

This reverts commit a8a1a617a284032add7bd8bbf09a75f52e067589.
Try to support PETSc 3.3, 3.4, and 3.5 in PISM 0.6.
Silence CMake 3.0 warnings while supporting older CMake versions.
Make "-ocean th" save "shelfbtemp" and "shelfbmassflux".

I can now confirm that the units of the sub-shelf mass flux are correct.
Updated funding sources in README (in pre-0.6.2).
Fix build failure with PETSc 3.5

PETSc 3.5 defines TaoConvergedReasons, so we don't need to.
Fix #299 in pre-0.6.2.

verbPrintf() used to extend the printf format specification by adding
"%A". This feature was not used anywhere in PISM.
Fix a bug in -ocean ...,delta_SMB.
Working on PETSc 3.5-related fixes in 0.6.
Rewrite put_on_proc0/get_from_proc0 IceModelVec2S methods (in 0.6).

Also add IceModelVec2S::allocate_proc0_copy(), which allocates scatters
and work space the first time it is called for a given DM and re-uses
them for all IceModelVec2Ss using this DM.

To transfer a 2D field to processor 0 and back, do this:

IceModelVec2S field;
Vec field_p0;

field.create(...);
field.allocate_proc0_copy(field_p0);
field.put_on_proc0(field_p0);
// do work on processor 0
field.get_from_proc0(field_p0);
VecDestroy(&field_p0);
Improve IceModelVec2::{get,set}_component(...) (in 0.6).
Generalize IceModelVec2::{get,set}_component() (in 0.6).
Remove last DMLocalToGlobalBegin/End calls (in 0.6).

This achieves compatibility with PETSc 3.5. (DMLocalToGlobalBegin/End is
broken in PETSc 3.5.)