uri: Don't leave infinite number of temporary files
Name the file depending on its content's hash. That way we store only few of the files (and keep rewriting them), which ensures only few are left behind and won't eat all the disk space.
This is still a bit hacky (we still leave files behind), but it solves the real problem. Eventually, when we move to libcurl instead, we wouldn't put these things into files anyway.
Fix for #132 (closed).