array(TimeRange) scan(TimeRange in)
This calculates the eventual events that is contained or overlapped by the given timerange.
Example: Event.christmas_eve->scan(Year(2000)) => ({ Day(Sun 24 Dec 2000) })
scan uses next if not overloaded.
scan can return an array of overlapping timeranges.
This method must use in->calendar_object->type to create the returned timeranges, and must keep the ruleset.