Add few methods to allow peers to exchange authentication information.
- `set_auth_callback(callback)`: Enable the authentication features.
The callback is a `Callable` that accepts an `int` (the peer ID), and
a `PackedByteArray` of data.
- The `peer_authenticating(id)` signal will be emitted instead of
`peer_connected` when a new peer connects.
- Use `send_auth(id: int, data: PackedByteArray)` to exchange data.
- Call `complete_auth(id: int)` when the authentication process is
complete and you expect to start receiving game data.
- The `peer_connected` signal will be emitted as soon as both parties
complete the authentication.
- Use `disconnect_peer(id)` to disconnect a connected peer.
- If the `peer_connected` signal didn't fire for that peer (i.e. it was
still in the authentication phase), the `peer_auth_failed` signal will
be emitted instead of `peer_disconnected`.