range: Handle zero-length ranges when calculating overlap
Zero length ranges, such as for events without a DTEND could be considered to overlap a range if they were at exactly the end of the range. The end of a range however is the first date that is supposed to not overlap, so a zero-length range on exactly this point should not be considered overlapping.
This fixes cases where all-day events from the next month could show up on the same day of the current month if they did not have a DTEND.
This also adds tests for all possible cases of such zero-length events overlapping.
Fixes #701 (closed)