Update weather.cpp
fix skipped weather block funnel stuff

there was a little mix up in the order that the code was supposed to be executed.

original code test case fails:
199                startturn = atoi ( container->item_vars["funnelcontainer_last_checked"].c_str());

201             auto weather_iterator = g->weather_log.lower_bound(startturn);
202            if( endturn > int(weather_iterator->first) ) {
203                 endturn = (weather_iterator->first) + 1;
                    //end this round of funnel updates when the weather changes.
                }
206             std::pair<int, int> weathercond = rain_or_acid_level( weather_iterator->second.weather );

208             if(weather_iterator->first > startturn) {
209                 weather_iterator--; //select the weather span we want to use
                }
211             weathercond = rain_or_acid_level( weather_iterator->second.weather );

...				yaddayaddayadda

229				container->item_vars["funnelcontainer_last_checked"] = string_format("%d", endturn);

------------------------------------

		sample weather log:
			1 turn 1 - 1000 clear
			2 turn 1001-2000 rain
			3 turn 2001-3000 cloudy
			4 turn 3001-4000 acid rain
			5 turn 4001-5000 sunny

			Case1:
			pass1:
			lastchecked=500 currentturn=3500

			199: startturn==500
			201: weather_iterator selects block 2
			202: test 3500 > 2000 ?: true
			203: endturn == 1002
			206: weathercond == rain
			208: test 1001 > 500 ?: true
			209: weather_iterator selects block 1
			206: weathercond == clear
			...
			case fails!

new code test case is how it is intended:
199             startturn = atoi ( container->item_vars["funnelcontainer_last_checked"].c_str());

201             auto weather_iterator = g->weather_log.lower_bound(startturn);

203             if(weather_iterator->first > startturn) {
204                 weather_iterator--; //select the weather span we want to use
                }

207             if( endturn > int(weather_iterator->first) ) {
208                 endturn = (weather_iterator->first) + 1;
                    //end this round of funnel updates when the weather changes.
                }

212             std::pair<int, int> weathercond = rain_or_acid_level( weather_iterator->second.weather );

...				yaddayaddayadda

230				container->item_vars["funnelcontainer_last_checked"] = string_format("%d", endturn);

------------------------------------

		sample weather log:
			1 turn 1 - 1000 clear
			2 turn 1001-2000 rain
			3 turn 2001-3000 cloudy
			4 turn 3001-4000 acid rain
			5 turn 4001-5000 sunny

			Case2:
			pass1:
			lastchecked=500 currentturn=3500

			199: set startturn=500
			201: weather_iterator selects block 2
			203: test 1001 > 500 ?: true
			204: weather_iterator selects block 1
			207: test 3500 > 1 ?: true
			208: set endturn=1001
			212: set weathercond=clear (block 1)
			...  accumulation code gets skipped due to clear conditions
			230: set lastchecked=1001

			pass2:
			lastchecked=1001 currentturn=3501

			199: set startturn=1001
			201: weather_iterator selects block 2
			203: test 1001 > 1001 ?: false
			204: skipped
			207: test 3500 > 1001 ?: true
			208: set endturn=2001
			212: set weathercond=rain (block 2)
			...  accumulation code runs due to rain
			230: set lastchecked=2001
			...
test case looks successful.
Advance to the correct weather span, it was going one span too far previously.
Tidy up fill_funnels some more.