traffic: new data type for tracking traffic routes between zones
traffic: promote Traffic structure to stand-alone class
traffic: new methods for tracking traffic routes between zones
traffic: add directional constants to Traffic class
traffic: automatically remove known traffic when tile changes
traffic: no longer auto-diminish traffic density

All traffic will be tracked, so we will be able to automatically
increment/decrement traffic density for any tile whenever a new
traffic route is added or removed.
traffic: make trfDensity map full density
traffic: update trfDensity when traffic added/removed
traffic: move pathAsString() to Traffic class
traffic: implement TrafficGen2.parsePath

This is not used now, but it should be useful once the new save-file
format is implemented.
misc: TrafficGen2 changes
traffic: makeTraffic- for each zone, generate four separate traffic routes

Traffic routes generated:
 * RES zones will generate traffic to COM zones
 * COM zones will generate traffic to IND zones
 * COM and IND zones will generate traffic to RES zones (for workers)

Later on we might also generate traffic for Stadiums, and special zones that
need employees.

Traffic is stored using the Traffic data type and the Micropolis class
takes care of updating the traffic density map.
traffic: tie growth of zones to traffic/wage metrics
traffic: remember traffic modifier even on cycles when traffic not generated
traffic: new method of finding place of worst traffic
tiles: isOverWater should include plain water tiles
traffic: route around bad congestion, use railroads, don't walk on water
traffic: more disciplined fitness function
traffic: allow starting for free from anywhere in the initial building

i.e. no longer add cost of walking from center to perimeter of zone
traffic: treat center of ending zone same as perimeter of ending zone