Introduce Cargo workspace and update Dockerfiles
Summary:
Introduced cargo workspace for services, shared and rust-node-addon.
Some context in this comment.
I put inline comments to explain it better.
This is the first and most important diff in the stack.
Test Plan:
- Locally: cargo commands inside packages work as before
- When ran in repo root, e.g. cargo check runs wor the whole workspace
- Docker build times and image sizes are comparable to non-workspace setup
- Pre-commit hooks for Rust still work as before
- CI: All Docker images are built successfully, including Keyserver
- CI: All non-Docker jobs (e.g. Android, iOS) compile Rust successfully
- Ran Services with Commtest locally
- Commtest on CI runs - it requires all services' docker images + its own Docker
Reviewers: varun
Reviewed By: varun
Subscribers: ashoat, tomek
Differential Revision: https://phab.comm.dev/D12140