Add caching to CraftChatMessage, add new test