Notable ones are that now every message has a field for the target
server, and that messages have an "optional" ID in that they dont have it
from client -> server and they do have it from server -> client.
The protocol changed a bit, I forgot to add room ids for some of the
messages. Other big features are that there are now ways to process
messages built into the library itself. Signature verification is
stubbed out because its a low priority feature, but encoding it in the
lib gives a standardized way to do it