fn canonical_query_string(query: &HashMap<String, Vec<String>>) -> String
Builds the SigV4 canonical query string: URI-encode every name and value, then sort the pairs by encoded name and value.