Filter consents by event date range. #3263.

N.b.: I'm not sure if the use of Date::Infinity here is kosher. It
works and all, but I can't tell if it is intended to be part of the
public API. It is listed in rubyspec, but only with stubs. And, as
noted in the code, it works as the end of a range but not the start
(since it doesn't implement #succ).

Anyway, future developers feel free to curse my memory when it gets
removed it in Ruby 3.14.
Shift lo-hi determination to informed consent events. Closes #3263.

This commit changes the import-time lo-hi determination decision in
two ways. First, It moves it out of OperationalImporter and into
`Participant#set_state_for_event_type` along with all the other state
detail decisions. Second, it associates the decision with each
Informed Consent event, instead of the Low-High Conversion event. (It
turns out that the Low-High conversion event is not consistently
recorded across SCs.)

This required a fair number of changes to the importer specs. Some are
expected and obvious reflections of the new behavior. Others are
because the new model resulted in the test participant's odd sequence
of events triggering a (pre-existing) implicit conversion to hi on
PV1.