(PUP-2700) Fix double uri escape

The resolution of PUP-1892 caused percent encoding of file_content requests to
be doubled. This created a regression where Puppet file servers would respond
with a 404 not found status unless multiple decode operations were applied.

This patch fixes the issue by building the file_content indirector request
directly from the file source parameter instead of casting it to an escaped
URI. The `Indirector::Request` class handles the necessary URI escaping during
initialization.

Also, the test cases for fetching file content from a remote source have been fixed up and de-duplicated.
Similar comment here: it's confusing to have the triple slash followed by a path element named `somehostname` which won't be parsed as a hostname. I think it will be clearer to change this to either `puppet:///test/foo bar` or `puppet://somehostname/test/foo bar`. (And changing the `expects` below to match of course.)