(maint) Refactor file content remote source specs

The "from an explicit fileserver" describe block mostly duplicted the original
"from remote source" block and so the two have been merged. Additionally, some
specific improvements have been made to the tests:

  - Tests for `puppet:///` vs. `puppet://` have been fixed and moved to
    explicit scenarios rather than implicit expectations in the global
    `before` block

  - The number of lines written to test files has been reduced from
    10000 to 10. This speeds up the suite and prevents failing tests from
    belching a wall of red text.

  - Replace instances of `.should` with `expect().to`.
(PUP-2700) Fix regression in file_content requests

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.
Merge pull request #2772 from Sharpie/fix-double-uri-escape

(PUP-2700) Fix double uri escape
Merge branch 'stable'