Diffuse2d -- 2d difussion with evaporation.
Discrete 2nd order approximation to 2d diffusion with evaporation. Math is done in integers on the range [0,0x7fff].
Initialize world to 0.
(id <Zone>)aZone setSizeX:
Convenience constructor for Diffuse2d
Set the evaporation rate. Values over 1.0 don't make much sense
Set the diffusion constant. Values over 1.0 might not be valid.
Run discrete approximation to diffusion. Roughly, it's newHeat = evapRate * (self + diffuseConstant*(nbdavg - self)) where nbdavg is the weighted average of the 8 neighbours.