new branch to fix event_occurences bug.
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.
Refactored many event spec tests. The "let" methods for defining functions had been confusing and didn't work well with overriding the options parameters, so those tests were refactored to use a new event method, next_occurrence_time_method.
There was already an attribute, next_occurrence_time, so I renamed that to next_occurrence_time_attr to avoid confusion.
Also, new class variables for collection_time_future and collection_time_past, which are used for getting collections of scheduled recurring events.
The original goal was simply to fix the collections of scheduled recurring events, but it has turned into a significant refactoring of the event model and event model tests.
set Event.collection_time_past model variable to 15.minutes (instead of 30).  This controls when 'late-starting' events are no longer displayed as upcoming.
some refactoring of Event tests and the Event model, recommended by Samprit and yaro.
Merge pull request #504 from jon-engelbert/event_occurrence_bug_fix

new branch to fix event_occurences bug. Pivotal #:76544670