Contains Breaking Changes
Changelog:
- Bump GO version to 1.21
- Use RWMutex instead of Mutex
- Don't trigger error when try to add a message that already exists in buffer
- Improve logging: use structured logs
- Don't limit the maximum size of peers buffer
- Remove timestamp and rand number from message id
- Merge custom callbacks registry and internal(default) callbacks registry
- Improve tests
- Don't return internal messages
- Allow to use a custom server (e.g. http server, maelstrom server)