If we see a tunnel during the usual tile scan, keep it in the cache
until it is explicitly evicted by a clear tunnel tile action, or
the cache is cleared at game init/load/shutdown.
Select colours at the drawing rather than the cache-building stage.
Bridges and tunnels are now stored/handled separately.
The process for bridges is mostly unchanged.
Notes on conflict resolution:
* MarkTileDirtyByTile gained an extra param on both sides of the merge
Move bridge level offset to be after zoom level param, as it's used less.
* Add zoom level params to MarkBridgeDirty functions
* Fix undefined behaviour in colour_index cycling in ViewportMapDraw
Conflicts:
src/clear_cmd.cpp
src/pbs.cpp
src/rail_cmd.cpp
src/toolbar_gui.cpp
src/train_cmd.cpp
src/vehicle.cpp
src/viewport.cpp
src/viewport_func.h
This is largely based on this patch:
http://www.tt-forums.net/viewtopic.php?p=849533#p849533
with the following changes:
* this uses a button in the smallmap window instead of a console command
* screenshot now uses zoom level and mode of smallmap window