WIP: (PUP-1072) accept HTTP URLs as file source and retrieve file data via HTTP

Opening for early review.

I would have liked to add new indirector termini, but there are issues. During the very creation of the indirector [request](https://github.com/puppetlabs/puppet/blob/master/lib/puppet/indirector/request.rb#L77-86), URLs get special treatment. The indirector assumes that they are in a format that complies with the REST API.

While it would certainly be possible to teach the indirector to accept these file URLs as is, it would add complexity that is currently required for only this one obscure use case. I don't think we should. 
What's a good universal pseudo-path? `/dev/null` will likely not work well on Windows.
I have yet to try specifying a path that does not exist at all.