Chat: Normalize joinData -> data, leavingUserName -> name, part event cleanup

This normalizes the `joinData` property in join events to `data` like in all other events, normalizes the `leavingUserName` property in logout to `name` like in part events, and simplifies part events to save bandwidth.
To elaborate on part events, currently a part is an exported user model, which contains all of the information about the user, producing output similar to `{"event":"part","data":"{\"id\":null,\"cid\":\"c123456789\",\"attrs\":{\"name\":\"Example\",\"since\":\"\",\"statusMessage\":\"\",\"statusState\":\"here\",\"isModerator\":false,\"isStaff\":false,\"isCanGiveChatMod\":false,\"avatarSrc\":\"http://images3.wikia.nocookie.net/common/avatars/thumb/e/e6/example.png/28px-example.png\",\"editCount\":\"0\",\"isPrivate\":false,\"active\":false,\"privateRoomId\":false}}"}`. Because the user is leaving the room, this information is essentially useless, and should in fact be identical to the user's currently stored model (if it isn't, a function is not sending updateUser when it should). Since the full user model isn't used by any function (or any bot to my knowledge), I simplified this by creating a `PartEvent` model containing only the name property, producing output similar to `{"event":"part","data":"{\"id\":null,\"cid\":\"c123456789\",\"attrs\":{\"name\":\"Example\"}}"}`.