(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.
I think it's confusing to leave `somehostname` in the path when it's not actually a hostname as parsed here. How about just changing this to `puppet:///test/foo`?