Small fix to analyse_equil in Hypnotoad

Erroneously decided that an x-point should be
discarded due to psi not being monotonic to the core.
Need to refine how this is tested, but for now
just relaxed constraint a bit
Fixes for NSTX run

- Made BoutMesh more tolerant of input settings. Previously crashed
  if jyseps2_2 was set to ny (Thanks D.Smith for reporting!). Now checks
  values of jyseps* and changes if needed, printing a warning

- Modified DIII-D 129131 case, to cope with old and new-style input grids
Working on DistribSurfaceIter. Work in progress.
More work on DistribSurfaceIter

Not finished yet, but should provide a way to gather and scatter flux surfaces
across processors
Hypnotoad improvements

o Rearranged interface, to make it clearer which options were for the mesh
  generator, and which for the output stage. Now have one tab for generating
  the mesh, and another for outputting it.

o Several fixes for generating meshes entirely in the core.
  Previously wouldn't recognise the mesh type, outputting incorrect
  ixseps and jyseps2_2 indices. Mesh generator improved to produce
  better starting grid locations.

o Added option to smooth curvature using nonlinear smoothing function.
  Enabled by default.

o Changed default curvature option to cylindrical + interpolation
  as this seems to be the most reliable
Small updates to Hypnotoad

Mainly cosmetic changes, and removing a /spline which
just made things worse.
Adding PetscLib class

A way to ensure that PETSc is only initialised and finalised once,
even if it may be used by multiple routines.

See include/bout/petsclib.hxx for notes on how to use
Merge github.com:bendudson/BOUT
Fix for Python collect routine

Sorts the file names, so should read from BOUT.dmp.0.nc by default first.
Reading from a random file could result in problems if there were more files
than expected e.g. an earlier run being overwritten
Initialise mesh object to NULL, and check in Fields. Fixes issue #36

Only checks when a new block of data is allocated, so shouldn't
affect run-time, only initialisation.
User manual staggered grid description

Flag name is "StaggerGrids", not "StaggeredGrids". Thanks
to T.Anderson for pointing out
Fixed Dirichlet boundary condition to be more sane

Setting dirichlet(10) previously would set the variable
to 10 in the boundaries initially (so far so good), but then
also set the time-derivatives to 10 in the boundary. Now sets
time-derivatives to zero.
Fixing CWM and gravity_reduced examples

Used RangeIter for boundary iteration. Changed to
RangeIterator
Iterating over Y boundary in user manual

Small explanation of how to set custom boundary conditions
in the Y direction
Misc changes for staggered grids and OpenMP

o *** DISABLED OPENMP *** in differencing operators (derivs.cxx). Was
  giving strange results, so need to check before re-enabling

o Added a test case, evolving n and v parallel with Neumann boundary
  conditions to test staggered grids

o Modified datafile, so enabled is no longer static. Writing to output and restart
  files should now be disabled separately e.g. with command-line arguments

  output_enabled=false       restart_enabled=false

o Datafile no longer crashes if setLowPrecision called on
  disabled output file

o Added Div_par_flux operators, which call the flux conservative methods

o Default output file extension changed to "nc" rather than "default"

o CVODE and PVODE solvers now call restart.write() rather than specifying
  a file name. This stops a new message being printed each time

o Solver intitialise opens the restart file specifying the file name
Merge github.com:bendudson/BOUT
runtime errors in PETSC Laplace class fixed - benchmark test still fails.