--- DDTU PROTOCOL v1 ---

- High level overview -

- Node Modes -

[Receive]
Is for receiving information.

[Send]
Is for sending data to the receiving end.

[Sync]
Is for syncing one directory among 2 ends. (Make contents the same on both sides)

[Daemon]
Is used to create a longstanding sync daemon which syncs the directory with all incoming
sync connections    


All infomation|commands are sent via packets with specific structure

- Packet bytes representation -

First 16 bytes - the total packet length
The next 1 byte - number that represents this packet's type (ID) where:
1: HANDSHAKE PACKET
2: HANDSHAKE ACCEPT
3: CONNECTION SHUTDOWN PACKET
4: TEXT PACKET
5: FILEINFO PACKET
6: FILEDATA PACKET
7: FILE ACCEPT PACKET
8: FILE REJECT PACKET

Then the internal structure varies from one packet type to the other,
but the content-types are encoded as follows:
u8 - just 1 BE byte
u128 - 16 BE bytes
String - u128 representing the string length and then UTF-8 encoded character bytes
[u8] - u128 as the length of a byte array, then the array itself
bool - convert it to u8 where 0 == false, 1 == true

- Packets -
[Handshake]
This is the first packet that must be sent by connecting node to waiting node.
Its existence tells the receiving end that the