This was part of my work for the auth PR, but I think it's useful
separatedly.
- Updated `fxa-client` to be a single binary.
- Added a cargo alias so it can be run with `cargo fxa [args]`.
I think this makes it easier to use and also will make it easier to
expand the functionality. It's easier to add another clap subcommand
than to add a new binary.
Previously, our special `cargo uniffi-bindgen` alias would work correctly
when executed from the workspace root directory, but would not work when
executed in the root directory of a crate (because from that location,
`cargo run` tries to run a binary from the crate you're in rather than
from the containing workspace).
This tweaks the alias to explicitly specify the package containing
the command, so it should work from any directory.
- Created tests.py to replace it.
- Added some new functionality targeted at developers who want to test
their changes before submitting them for review.
- Moved the functionality from `all_rests_test.sh` into `tests.py`.
Split it up into 2 parts: rust-tests and nss-bindings.
- Added modes to perform the other tests/linting/formatting that
all_tests.sh was handling.
- Updated CircleCI config to use tests.py when possible.
This is an attempt to simplify how we use `uniffi-bindgen`, by making
it easy to run the version used by the workspace rather than assuming
that the user has a correctly-matching version of it installed in their
system cargo.