Handle I2CP MessagePayloadMessages from the router delivering the contents
of a message by accepting it, decrypting the payload, adding it to the set of
recieved messages, and telling the router that it has been recieved correctly.
Singleton to manage the logic (and historical data) to determine whether a message
is valid or not (meaning it isn't expired and hasn't already been received).
Compare the BigInteger.modPow/doubleValue vs the NativeBigInteger.modPow/doubleValue of some
really big (2Kbit) numbers 100 different times and benchmark the
performance (or shit a brick if they don't match).
This value indicates the mode, with values defined as follows:
Mode Meaning
---- -------
0 reserved
1 symmetric active
2 symmetric passive
3 client
4 server
5 broadcast
6 reserved for NTP control message
7 reserved for private use
In unicast and anycast modes, the client sets this field to 3 (client)
in the request and the server sets it to 4 (server) in the reply.