Very WIP, but this is basically attempt 3 at getting the data fetch times down which are really killing us on mobile.
If we prioritize already-known addresses (rather than listing all conversations at startup time), it looks like we can get the load time super low (sub-second compared to dozens of seconds)
Basically we're going to be doing more/better caching using 2 methods:
using react-query
using a well-known address where we can persist conversations list
The work on this PR took me most of a day, mostly because I've never used react-query before. Currently stuck on stitching together the XMTP streaming API with the react-query fetching, but it's not a hard problem.