[marlin] Wrap the PriceFetcher class to reduce API calls
Summary: This makes it so that all the crypto sources are always refreshed, keeping the cache hydrated and avoiding repeated API calls. For now this is useless because only XEC is supported, but it will be useful when adding tokens.
Test Plan:
cd web && pnpm test pnpm web
Reviewers: #bitcoin_abc, PiRK
Reviewed By: #bitcoin_abc, PiRK
Differential Revision: https://reviews.bitcoinabc.org/D19782