Adding bout-config script

Intention is to make it easier to use BOUT++ as a library
and to use multiple versions e.g. through Modules
output.make to capture flags for use in bout-config script

Flags needed to compile e.g. PETSc are available at configure
time. If the environment changes later then PETSC_DIR etc. may
change, in which case the link flags could be different.
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
Added example makefile to use bout-config script
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
Improving overload of operator+ so that it doesn't modify either of the
FieldGroup objects involved but simply returns a new FieldGroup.
Laplace: implement include_yguards option in spt
Update bout++.cxx

Attempt to fix intermittent bug where the final timestep is not correctly written to all dmp files.
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.