Remove mapRain data structure

Replacing with explicit check for weather a square is valid for rain.

This is mostly a performance enhancement, extracting rain logic from the main draw code.
In particular, if rain is disabled it drops the performance impact of the feature to nothing.
It has a side effect of cleaning up the code as well, because the draw code shouldn't be worrying about rain.

The down side is it duplicates a small amount of "can the player see the tile" logic, but I think that's an acceptable loss.