Refactored Field class and behavior.

The field class is now a wrapper that contains a vector of any number of
fields at once. So now you can choke on smoke, burn in fire, and melt in
acid all at the same time. Fields now propagate additively... so if
something is spewing smoke instead of overwriting the old smoke, it adds
to its density.