[marlin] Add initial Firma support
Summary:
A switch at the top of the app let the user switch between Firma and XEC.
There are some limitations for now:
- There is no support for bip21 firma payment requests
- There are a lot of legacy functions and variables that should be renamed now that tokens are supported
The design allow for easily adding any desired token, making marlin a good template for token wallets. For now only Firma is added, more might come later if I feel like it doesn't degrade the experience. It's still only send and receive at this point, but I think a swap feature might make sense. All of this will be other diffs, this one is already large enough.
Note that there is a special case for the Firma price: it's pegged to USD, so when the user selects USD as a fiat currency the conversion is forced to exactly 1/1. For all other currencies, USDT is used as a USD proxy.
Test Plan:
pnpm web cd web && pnpm test
Reviewers: #bitcoin_abc, bytesofman
Reviewed By: #bitcoin_abc, bytesofman
Subscribers: bytesofman
Differential Revision: https://reviews.bitcoinabc.org/D19779