Working messaging v2

Messaging is now done only through usernames with registering, (along
with ack-ing).
Added placeholders for handling files, unregistering, and viewing users.
Separated sending and receiving
Separated initializing socket connection and accepting connections on
the receiver side. Cleanup is now the users responsibility when they
are done listening (saved on address in use errors).

Tested, these parts work well, and it’s coming along veeeeeery nicely.