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
`from string import join`. It is useful if you want to use it functionally (e.g., `reduce(join, ...)` or `f = lambda x: x(...); f(join)`), but agree it isn't as common. It isn't necessary to change, but it was a bit confusing at first without the context of the rest of the file