Malformed callback redirect when it already contains query string
First of all, thanks for the library.

When I have a Provider `callback` that contains already a query string, the final redirect location seems to be malformed

**Callback**

```
http://localhost:3000/connect/keycloak/redirect?referrer=%2Fen%2Fsearch
```

**Redirect Location**

```
http://localhost:3000/connect/keycloak/redirect?referrer=%2Fen%2Fsearch?id_token=abcdefg
```

As you can see the query symbol (`?`) is already included in the Callback.
When the Redirect Location is created, the query symbol gets added again (see before `id_token`).

This issue creates problems when you try to parse the final URL

```ts
let url = new URL(`http://localhost:3000/connect/keycloak/redirect?referrer=%2Fen%2Fsearch?id_token=abcdefg`)

console.log(url.searchParams.get('id_token')) // null
console.log(url.searchParams.get('referrer')) // "/en/search?id_token=abcdefg"
```

This comes from this line

https://github.com/simov/grant/blob/500ab2066e177f14856fd50bf0b507651111692b/lib/response.js#L108

Meanwhile, this gets fixed, I'm using this patch workaround

<details><summary>patches/grant+5.4.24.patch</summary>
<p>

```diff
diff --git a/node_modules/grant/lib/response.js b/node_modules/grant/lib/response.js
index e67a013..a52812b 100644
--- a/node_modules/grant/lib/response.js
+++ b/node_modules/grant/lib/response.js
@@ -105,7 +105,7 @@ var transport = ({provider, input, input:{params, state, session}, output}) => (
     ? output
 
     : (!provider.transport || provider.transport === 'querystring')
-    ? `${provider.callback || '/'}?${qs.stringify(output)}`
+    ? createCallback(provider.callback, output)
 
     : provider.transport === 'session'
     ? provider.callback
@@ -121,4 +121,16 @@ var transport = ({provider, input, input:{params, state, session}, output}) => (
   ),
 })
 
+var createCallback = (callback, output) => {
+  if (!callback) return `/?${qs.stringify(output)}`
+
+  var url = new URL(callback)
+  url.search = new URLSearchParams([
+    ...new URL(callback).searchParams,
+    ...new URLSearchParams(qs.stringify(output))
+  ]).toString()
+
+  return url.href
+}
+
 module.exports = {data, transport}
```

</p>
</details> 

**Redirect Location with patch**

```
http://localhost:3000/connect/keycloak/redirect?referrer=%2Fen%2Fsearch&id_token=abcdef
```

