Implement the Offer payload.
Use payloads.Offer wherever it's needed
Chat: minor doc improvement
Implement the Answer payload
Use payloads.Answer wherever it's needed
Implement the Hangup payload
Use payloads.Hangup wherever it's needed
Make sure call rest apis return successfully rather than timing out
Server: refactor the format of pushed events

An event is not an object with a topic and data attributes.
So {topic: "data"} becomes {topic: "topic", data: "data}.
This is more consistent with client-sides events

Moreover, the following "topics" changed:

- incoming_call becomes offer
- call_accepted becomes answer
- call_hangup becomes hangup
Use 204 instead of 200 for responses as the responses don't need a body
Merged with master
Add a queue for messages to the conversation window to be held whilst it is still opening
Don't send a second talkilla.conversation-incoming message if one has already been queued
Implement the IceCandidate payload
Use payloads.IceCandidate wherever it's needed
SPA: fix Server#iceCandidate
Server: fix the iceCandidate API
Fix tests
Address pull requests comments
Move test documentation out to a separate file, add some more detail and some clarifications