Delay the update of query params

This does a `setTimeout` with a 600ms delay, every time `queryValue` changes. Once the delay is over we update `query` which updates the query param. If the `setTimeout` was already set we reset it to prevent multiple updates.

This helps prevent "[The Over Zealous Hansel And Gretel](https://www.youtube.com/watch?v=5HP6OM9QSgs)" bug when updating URLs.
@wycats stuff like this really wants to be the result of an action