Most of this is hidden behind a feature flag and untested. Still waiting
on server support to exercise these endpoints.
- Builds out skeleton for tracking arbitrary spam challenges
- Records a push challenge in response to a server push
- Records a captcha challenge in response to a server precondition
rejection when fetching prekeys or sending messages
Push challenges should be good to go (once tested). Captcha challenges
still require some work to pause sending and present the captcha to the
user. Server communication for captcha challenges is complete.