Download files with nginx

@antgonza helped with this one.  Remaining to be done:

~~Get nginx into Travis CI~~ (EDIT: We are deferring this for now, since we don't know what to do at this time)
- [x] Add download links in the GUI where appropriate
- [x] Fix whatever tests are about to fail when I submit this PR
Actually, since the end result is a `set`, why not use a set comprehension here? The subsequent `extend` calls could then just be `update`, which also removes the need to cast on return