CLI inspection (cargo subcommand)

The cargo subcommand (canopen-eds-cli (BB_0086)) so users can inspect what was generated for a given EDS file without going through $OUT_DIR or cargo expand.

Feature: CLI inspection (cargo subcommand) FEAT_0067
status: open
satisfies: FEAT_0060
is satisfied by: REQ_0770, REQ_0771, REQ_0772
is implemented by: BB_0086

A cargo subcommand so users can inspect what was generated for a given EDS file without going through $OUT_DIR / cargo expand. Adds discoverability with one extra crate, no change to the codegen path (per cargo subcommand for inspec... (ADR_0077)).

Requirement: cargo eds expand emits one device's generated code REQ_0770
status: open
satisfies: FEAT_0067
is verified by: TEST_0660

canopen-eds-cli shall expose a cargo eds expand --device <ident> subcommand that parses the matching EDS file(s) and prints the generated module for that device to stdout, formatted per Generated output passes thr... (REQ_0763).

Requirement: cargo eds list enumerates devices in a glob REQ_0771
status: open
satisfies: FEAT_0067
is verified by: TEST_0661

cargo eds list shall accept a glob pattern (defaulting to eds/*.eds when invoked from a crate root) and print the (ident, vendor_id, product_code, revision) tuple for every device found.

Requirement: CLI shares the parser and codegen crates REQ_0772
status: open
satisfies: FEAT_0067
is verified by: TEST_0662

The CLI shall depend on canopen-eds and canopen-eds-codegen-taktora as library dependencies. It shall not duplicate parse or emit logic. Output produced by the CLI for a given input shall be byte-identical to the output produced by canopen-eds-build for the same input and formatter settings (Generated output passes thr... (REQ_0763)).