Make Event#implied_by? accept Psc::ScheduledActivities.  #4085.

The two-argument form needs to stay around for now, not because there's
many methods that call it, but because Event#matches_activity? passes
parts of a ScheduledActivity (note: not a Psc::ScheduledActivity) into
it.

I suppose this could be adjusted, but that's a task for a different
commit.
Event.with_psc_data.  #4085.
Cache scheduled activities for events.  #4085.

Also freeze scheduled activity collections because they've got a much
wider scope now.
Establish Reports namespace.  #3662.

This commit also moves CaseStatusReport into said namespace.
GET /api/v1/events.
Stub out Reports::EventReport.  #3662.
Respond with 400 Bad Request on zero-parameter reports.  #3662.
Factor out event-scheduled activity linkage context.  #3662.
Filter by scheduled dates.  #3662.

The event -> participant -> person relationship expected by
PscParticipant needs to be clarified.  (Events can exist on their own;
they don't need a participant or a person.)
Make Event#scheduled_date handle no-scheduled-activities case.  #3662.
More work.