Minor fix in RunPort#deep_value.

Also added a comment to explain why it mangles file paths like it does.
[TAV-484] RunPort#value returns zipped lists.

If no indices into a deep list are given then return the whole thing zipped up.
Add RunPort#filename.

This generates a suitable filename for use when saving a port's data.
Refactor RunsController#download_port.

Now much simpler and also uses the RunPort#filename method to set the default
local name of the file to be saved.
Refactor RunsController#input.

Now much simpler and sets the correct content type too.
[TAV-482] Refactor worker code to use Zip concern.