More strong typing, plus reformatting in URLLoader
Make URLStream#close work

By unifying the two implementations of BinaryFileReader we have floating around.
And by adding close methods to the various implementations of FileLoadingService we have floating around.
Make URLVariables#toString not throw for numeric-looking variable values
Implement LoadVars

With tests for attempting to load a non-existent file and loading vars from a text file.

Sending vars works, too, but writing a test for that is hard, as it would require setting up a server that records the request and tells us whether it had the correct format and content.