Experimenting with more structured ways to handle command-line input/output in Rust

Refactor `fluent_embed` to support structs

The previous implementation supported just enums, but now both structs and enums are handled correctly. This was mostly removing enum-specific assumptions in the code, and pulling out common logic where applicable. The group::Group struct was also changed to have a more consistent interface; canonical_message() and additional_messages() instead of just message()

Created by  finchie  on July 3, 2024
NO3PDO7PY7J3WPADNCS5VD6HKFY63E23I3SDR4DHXNVQJTG27RAAC
Change contents