allow use of external IPFS node instead of builtin helia
Using a helia node is convenient because you get a dedicated IPFS node running in the browser which covers the app's needs. But since this node is online only when the app is loaded, it does not benefit from the shared storage allowed by a system-wide or network-wide shared IPFS node.
Allowing the use of an external IPFS node would allow to load documents (pdfs, photos, videos) from the app, close the app, and have the documents still available in an other ipfs-compatible app running on the same network with read access to the ipfs node.
To achieve this, I have to:
- refactor the ipfs-related methods (dag put / dag get / pubsub pub / gateway get...) in an overlay
- allow switching from one mode to the other in the settings
- do some kind of checks about the remote RPC API (read-write access)
- (optimization) allow to build the app without the helia / p2p dependencies