Expression parser fix

Bugfix: incorrectly parsing multiple operator expressions
such that

3*x^2 - z

was interpreted as

3*( (x^2) - z )

Added: str() method to FieldGenerators. This returns
a string representation of the generator, which can be
printed for debugging.
Changed boundary handling of z in expressions

To be consistent with fieldfactory, a factor of 2*pi is
put in front of normalised Z coordinate passed to generator
Added MMS test of Hasegawa-Wakatani system

For now imposing a phi solution, rather than solving
from vorticity, so only testing differencing methods

With 1st order upwinding for bracket method,
get 1st order convergence

Using Arakawa method, get no convergence.
Could be because it needs some dissipation?
Appears to blow up around boundaries first. Problem
there?