URI module -- make it support HTTP 301, 302, 303, 304, 307

... location header to set the dest file name if we only provided a
target dir. Only save if dest not modified.

Use case: we download artifacts from a Nexus repository through a HTTP url of the form
```
${nexus_url_base}r=${nexus_url_release}&g=${javapp_groupid}&a=${javapp_artefactid}&v=${javapp_version}&c=${javapp_classifier}&e=${javapp_extension}
```
Which doesnt allow to know the filename of the file we download beforehand.

Also implements the If-Modified-Since header, yielding in a changed: false return when the file is nog newer.

TODO: implement a force parameter to download the file either way