initial realm, connection, and message structs.  i don't know what the best practices are for package naming, so this is all going in main for now.