Fixes repeating event repeat_ends_on bug by modifying the next_occurrences function to only accept scheduled event instances before that datetime.

Pivotal #:76544670
repeating event schedule is not respecting end time limit (event.repeat_ends_on)
Fixes repeating event repeat_ends_on bug by modifying the next_occurrences function to only accept scheduled event instances before that datetime.
the expressions `repeats != 'never'` and `repeat_ends == true` should be refactored into methods with a more expressive name