Feature/no messages

adds to events to the socket:

1. `subscribed` (so peers can trigger sync synchronously)
2. `no messages` to inform peers that no messages are available for them