[shared][rust] Add proc-macro to deserialize tagged enum variants
Summary:
Detailed description of why we need this: ENG-8901.
Unfortunately, proc-macros need to be defined in a separate crate (see why), so I created a util-macros crate in our Cargo workspace.
Test Plan:
- Added rustdoc usage example
- Rust unit tests added in the next diff
- Used and tested in in D12895
- Rust playground - see Linear description
Reviewers: varun, will, kamil
Reviewed By: kamil
Subscribers: ashoat, tomek
Differential Revision: https://phab.comm.dev/D12901