Save query string params in the S3 filenames

When we cache data on S3, we want to save the original query string as part of the name, since that impacts the data. It looks like that component was getting treated as an actual query string. Instead, we now encode the query string component, so it is treated as a regular part of the filename.

Addresses #88 

/cc @hampelm