Moves the upload/download logic from JS code to rust code. Uses the previously introduced backup client. The JS code that is no longer needed will be removed in the next diff but I wanted to keep this one smaller.
We no longer return encrypted values up to JS from Rust, and we don't send the downloaded encrypted bytes down to Rust as now it can handle download/upload by itself.
Depends on D10263