Refactored TaskScheduler, moved all timetable related logic to new timetable class.
Refs #4263, fix bugs in geoip auto updater, show next scheduled time for updater in admin screen and refactor the updater a bit.
Refs #4263, display next scheduled run time for geoip updater task, make sure updater is run in next cron run if a file is out of date, & forgot to commit new file in last commit.
Fixes #4263, fix bug in weekly scheduled time period and fix bugs in last commit.