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. 
Joy: Puppet will *only* trust a server certificate if it was signed by the Puppet CA. Common CAs are not recognized. This makes sense for most HTTP connections of the agent's, but not this one.

Should we add a subclass or special instance type that *will* respect the OSs certificate store?