Refactored the flags in invert_laplace: removed all the boundary conditions from `flags' and put them in `inner_boundary_flags' and `outer_boundary_flags' instead; updated the implementations correspondingly. Largest flag is now 1024 instead of 2097152 which should make setting the options more convenient (if not much clearer) and leave more room for implementing further options. This will break all examples that used flags other than 0 and any that call the invert_laplace() functions which now have extra arguments for inner_boundary_flags and outer_boundary_flags.
Use global_flags instead of flags for the new-style code, so that legacy code can still use flags option. setFlags(int flags) now interprets old-style flags and sets global_flags, inner_boundary_flags and outer_boundary flags appropriately. invert_laplace() functions reverted back to just an `int flags' argument without *_boundary_flags, then use the new setFlags(flags). Legacy code should now continue to work, while the new style allows easier additions to global_flags and *_boundary_flags.
Modified a few files that used flag values (formerly) set in invert_laplace.hxx not to depend on it (just copied in the requisite numerical values).
Added VDDX_C2_stag and VDDX_C4_stag derivative methods
Exception handling: fixed (in bout++.cxx and solver.cxx) to catch by reference not by pointer.
Merge branch 'master' of http://github.com/boutproject/BOUT-dev
Fixed 'deprecated conversion from string constant to ‘char*’' errors in petsc_laplace.cxx
Merge branch 'master' of http://github.com/boutproject/BOUT-dev
Merge branch 'master' of http://github.com/boutproject/BOUT-dev
Merge branch 'master' of http://github.com/boutproject/BOUT-dev
Laplace: implement include_yguards option in spt
Merged fixes from branch laplace_bndry_upgrade
Merge branch 'master' of http://github.com/boutproject/BOUT-dev
Merge branch 'master' into laplacian_flags_refactor

Conflicts:
	src/invert/laplace/impls/cyclic/cyclic_laplace.cxx
	src/invert/laplace/impls/spt/spt.cxx
Updated new implementations of Laplace to use new flags.
Update bout++.cxx

Remove redundant MPI_Barrier.
Laplacian flags refactor

This is a major change to how boundary condition and other
flags are set for the Laplacian inversion codes.

Most flag consts (e.g. INVERT_DC_IN_GRAD) will now be undefined,
but are still in invert_laplace.hxx for reference.

Two flags are still defined, but now have different values:
INVERT_4TH_ORDER and INVERT_KX_ZERO

These changes could break many examples, so these will need to be checked

Test suite passes, except for test-laplace. This is probably related to the MMS changes
rather than the refactoring. Will need checking asap.