[mkcal] Work around invalid recurrence data on sqlite

It's possible to create invalid recurrence state by
event->recurrence()->setEndDate(QDate()). Event keeps having occurrences
but duration() says there's an end set. recursAt() and getNextDateTime()
don't return them, however.

Fix such broken state when reading recurrence data.