Events refactoring

This PR add a new `payloads.js` file to describe all the important payloads exchanged between the different parts of the application.

Payloads implemented so far:

- `Offer`
- `Answer`
- `Hangup`
- `IceCandidate`

Events sent from the server changed: `{topic: "data"}` becomes `{topic: "topic", data: "data}`.
Moreover `incoming_call`, `call_accepted`, `call_hangup` topics are now respectively `offer`, `answer` and `hangup`.