** Important ** Preconditioning changes

Interface to preconditioning changed, to make more intuitive.
Rather than returning the result in the state variables,
the time-derivatives should now be used.

A preconditioner which does nothing previously looked like this:

int precon(BoutReal t, BoutReal gamma, BoutReal delta) {
  U = ddt(U);
  Apar = ddt(Apar);
}

one line per evolving quanity. The new system reduces this to:

int precon(BoutReal t, BoutReal gamma, BoutReal delta) {
}

as the input and output variables are the same. Only variables
which are going to be preconditioned need to be changed.

Examples changed: elm-pb, test-precon, reconnect-2field, laplace-dae

User manual updated to new API
User manual updates

o Added section on Object-Oriented interface for defining
  physics models.

o Moved section on ExB divergence to coordinates manual
Relaxing drift-instability tolerance to 1%

Zeff = 2 case almost always fails, because the benchmark values
were recorded on my old 32-bit desktop and are 0.1% out from
what most other machines get.