Unify crate versions under workspace package version

Problem to Solve

Each crate in the workspace had its own hardcoded version (mix of 0.1.0, 0.21.1, 0.24.0), making it hard to track releases and tag docker images consistently.

Proposed Solution

Use Cargo's [workspace.package] version inheritance so all crates share a single version defined in the root Cargo.toml. Bumping the version for a release now only requires changing one line.