Replace all JM_ macros with ui::MessageType enum and add ui::RegisterMessage class to register new UI messages