Improve in_notification_window

The check for occurrence in the past takes only date into account. Now
the time-aware filter in done in the task. Also, notification before
days defaults to 1, since 0 causes skipping notifications of occurrences
happening before notification hour.
Add tests for is_in_notification_window
Add freeze_time fixture for tests

Freezes the time returned by datetime.now etc. and also by sqlalchemy's
func.now()