Fixed bug in BoutMesh::GlobalY

Previous update for continuous y derivative in single/double-null plasmas
had bug which appeared outside the core. Thanks to J.Omotani for finding.
Moved uncopyable.hxx to bout/sys

Trying to organise header files under bout/ subdirectory,
so BOUT++ can eventually be installed in somewhere like
/usr/include/ without lots of conflicting file names
Modified where() functions to use (i,j,k) indexing

Replacing [][][] indexing to enforce const properties,
and eventually allow different implementations of field
CVode solver now catches BoutRhsFail exceptions and returns 1 instead of 0. This tells CVode that the timestep failed recoverably, so it reduces the timestep and tries again. As exceptions that are not thrown on all processors are problematic (will cause the program to hang if there is any communication required after the exception was thrown) BoutParallelThrowRhsFail("some message") should be called to throw BoutRhsFail. Implemented in petsc_laplace to throw a recoverable error if the solver takes too many iterations.