Optimize globalevents code

Globalevents are now scheduled for the time when the next event is to be
executed instead of being checked every 50ms (think events) / 1000ms
(timer events). This commit also fixes a bug where reloading
globalevents wouldn't cancel the existing scheduled events because
thinkEventId and timerEventId weren't being updated to the new scheduled
events.
Fix bug with guild wars