Create an API endpoint which allows POSTing to /talks/42/speakers. This is only available to logged in users. The fields should be:
Speaker display name (this is the value that is already set in talk_speaker, we need it so we know which speaker on this talk to link this user to
username of the user to link to this talk as a speaker
The endpoint only works if you either are the user claiming to be the speaker, or you are an event or site admin.
If the request is successful and the values exist, a row will be added to the pending_talk_claims table indicating which talk, which row in talk_speaker and which user (speaker_id) this is. If you're the speaker, we set the user_approved_at column in pending_talk_claims to the current timestamp. If you're an organiser, we set the host_approved_at column in the pending_talk_claims table to the current timestamp.
The endpoint should also trigger an email to either the speaker (if the organiser submitted this request) or the event organisers (if the speaker submitted this request) letting them know there is a claim to approve.
A speaker is not linked to a talk until the other party (the speaker or an organiser) has approved the claim.