FieldFactory: Changed generator interface

FieldGenerator::generate now takes 4 doubles as input:

(double x, double y, double z, double t)

and no pointer to a Mesh. This means:

o The parser (ExpressionParser) is decoupled from other BOUT++
  objects e.g. Mesh, Field, Output, Options
  and so can be unit tested in isolation (or used in other projects)

o For now Field2D and Field3D objects can't be turned into generators
  (since indices not given). This should be possible though using interpolation

o The generator is intended for continuous expressions. Could this
  be used to automatically differentiate expressions numerically?