Fix exception when building gardens on edges of map.

If checked tile is on map edge there may be not enough space to upgrade garden. 'getFilledRectangle()' returns less tiles than needed but all of them may be valid garden, so we tried to upgrade - then exception was raised as some tiles were outside of map.
Filtering of walkers for overlays.

Some overlay display only subset of all walkers in city. Call setVisibleWalkers(array), where 'array' is list of walker types to display + WT_NONE at the end of array (so in extreme case it would be 'new WalkerType[] { WT_NONE }').
Helper function for drawing buildings in overlays. Example usage in food & water.
TradeOptions class improved. Window for trade options improved.