Save downloaded zip file contents to a local file

The client request for the 'zip' endpoint needs to be treated slightly differently to the other endpoints as the downloaded file should be saved to a local, temporary file to prevent problems with out-of-memory errors.

The response from the request also needs different treatment as the default JSON decoding of the response body removes the transferred file contents and also the name of the temporary file needs to be passed back to the caller.

I have modified the code in the getResponse method and added supporting methods as appropriate. I have not created unit tests for the changes as there is already a test for the 'zip' endpoint nor have I changed the functional test for the zip download as these tests all fail on my Elvis Server set up.

I have, however, tested the changes with my current Elvis DAM project and the changes work as I expect.
This one is extra, method will return $json_response anyway in the end.