fix scheduled reports when there is no minute set

mid-sized refactor + tests included

http://manage.dimagi.com/default.asp?133813
basically, yeah. if this is firing more than 5 minutes late then that could represent a larger infrastructure problem where we might not know if it's 5 or 35 minutes late, so i figured we could fail hard and then see if we get any alerts.