User equals and hash added
IMessage equals and hash added
PrivateMessage equals and hash added
GroupMessage provides a method to return the message easily as string