code: public String query() {
          if (queryNamesAndValues == null) return null; // No query.
          StringBuilder result = new StringBuilder();
          namesAndValuesToQueryString(result, queryNamesAndValues);
          return result.toString();
      }
docs: Returns this URL's query, like {@code "abc"} for {@code http://host/?abc}. Most callers should
  prefer {@link #queryParameterName} and {@link #queryParameterValue} because these methods offer
  direct access to individual query parameters.
  
  <p><table summary="">
  <tr><th>URL</th><th>{@code query()}</th></tr>
  <tr><td>{@code http://host/}</td><td>null</td></tr>
  <tr><td>{@code http://host/?}</td><td>{@code ""}</td></tr>
  <tr><td>{@code http://host/?a=apple&k=key+lime}</td><td>{@code "a=apple&k=key
  lime"}</td></tr>
  <tr><td>{@code http://host/?a=apple&a=apricot}</td><td>{@code "a=apple&a=apricot"}</td></tr>
  <tr><td>{@code http://host/?a=apple&b}</td><td>{@code "a=apple&b"}</td></tr>
  </table>