Download backup

apiserver/backup: api endpoint for downloading a backup
I really dislike the idea of putting the asserts into the mock backup function. I think it's much cleaner for that to remain as "dumb" as possible - just doing the necessary setup and storing the parameters about how it was used. Keeping the asserts in the body of the test method itself. Call the code under test, then assert about how it behaved.

If the issue is storing the parameters on the test suite I can provide another object to store them on and avoid polluting the suite.