Split client codegen out into its own crate
Description of Changes
This is something I've had a branch for for a while, and now that #2244 is merged I can open it. This makes the codeowners situation simpler, and also lets us put the codegen snapshot tests directly with the codegen crate instead of as integration tests using the Rust api of the CLI.
I moved the Lang::{format_files,clap_value} functions off of the trait because those aren't really related to codegen, and fit better in the spacetimedb_cli::tasks module and inlined into to_possible_value respectively.
API and ABI breaking changes
Expected complexity level and risk
1: if you review with git diff master --color-moved, you'll see that most of this is just very straightforward code movement.
Testing
n/a; no new behavior and the codegen snapshot tests still pass.
I don't have any input here, feel free to move this one forward without me 👍