Update city map generation with the new function.  Simplify the location-choosing loop a bit.
City_map::generate() now accepts Direction_fulls for the start & end position of the river (if any).  Map_type_datum has two bools, is_river and is_water.  New Terrain_type, TER_LAKE.
City_map::generate() now places rivers in such a way that their direction matches that from the World_map.  If there's only one adjacent water tile on the World_map, it will place a small lake.  Don't replace ocean tiles with river.  Use the is_river property of Map_type_datum, rather than a list of river Map_types, to decide whether or not to place a river.
Data for the new TER_LAKE terrain.
Macros _water() and _river() turn on water/river status for Map_type_datums.  Include a datum for MAP_NULL.
New World_map functions: is_river(), is_water(), river_start_for() and river_end_for().  New ? keybinding in World_map::draw tells us whether the tile under our cursor is a river, and the results of the river_start_for() and river_end_for() functions for that tile.