Fix disconnection handling during waiting room phase

Before this fix, if someone disconnected during the waiting room
phase, they would still be grouped, but their group members would
immediately notice they're missing in the next step. In practice
this led to many small groups, because people often visited the
page and then navigated away. It also caused problems if users
refreshed the page since this caused a new POST and created a
new task.

This fix causes everyone to send a heartbeat POST to the server
15 seconds before their timer expires (time is configurable in
WaitingRoom). Anyone who doesn't send a heartbeat before the
group formation time arrives is removed before the grouping is
done. The join_group call itself also functions as a heartbeat,
which is important for the case where the timer is already at
zero when they start waiting.
Updated hardcoded activity schema and condition IDs for quiz 3