Add isostatic uplift

Each continent's total elevation above sea level is recorded before
eroding, and then again afterward; the entire continent is then lifted
up by that amount.
Add CaCO3

When life exists (always, currently), sedimentary rock that forms in
warm water will be limestone or chalk, which metamorphose to marble.
Instrument simulation

Introduce code for recording how long different parts of the simulation
take. Bottlenecks appear to be calculating the initial tile movements
and performing the climate simulation.
Profile climate simulation
Only calculate sea breeze direction once
Cache climate dictionary length
Reuse climate cell mapping structures

Several structures used in the bogus climate simulation are somewhat
expensive to set up, but don't change with the terrain (i.e., depend
only on constant planetary parameters like the spin rate and the number
of Hadley cells). The simulation now caches these between climate calls.
Cache tile elevation
Disable climate profiling

Next big gain here would be speeding up (or reducing the number of)
ClimateDict gets and sets, but at this point the climate calculation is
on the order of the tile movement calculation in terms of time.
Add "Color" display mode

Intended to represent something like the "true color" of each tile. For
now just ocean, snow, various greens, or an attempt at rock color for
deserts, and doesn't really look right.
Atmosphere and life appear randomly

Simulation begins with no atmosphere (implying no climate or erosion),
then at some point develops one, and then eventually gets (land) life.

By the time this happens, the world is generally dominated by huge
mountains; this happens even when the planet starts with an atmosphere
already in place, suggesting that erosion could use a buff.
Change approach to erosion

The previous erosion logic was something like: each tile erodes to all
adjacent tiles of lower elevation, by up to the elevation difference
between them, based on precipitation and glaciation.

With this change, each tile erodes to all adjacent tiles regardless of
relative elevation, based on absolute elevation, precipitation, and
temperature.

The "degree" of erosion between each source and destination is no
longer an inherently meaningful measurement of the quantity of material
transfered, but an abstract value in [0,1] representing the amount of
erosive activity between the tiles. Layers in the source tile erode
from the top down according to the toughness of each affected rock.

Erosion is also scaled by timestep, meaning that subduction-based
orogeny should stay in balance with erosion across timescales, though
this is untested.

The end effect is that continents do not appear to inevitably become
dominated by mountains as they had previously, and the new consideration
of rocks' toughness should allow the generation of Alp-like ranges
composed of the "bones" of old mountains.