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. 
This is icky. I have no clear idea how to generate a suitable `mtime` type checksum value.
As long as PUP-1208 remains unresolved, I cannot really test whether something works. I suspect that this format will not.