fix: remove generic `State` from `Location` type
fix: remove generic `State` from `Location` type

`location.state` is like `location.search`, there's no way for a type system to do its job with a value that isn't controlled by the code. Similarly, the DOM type for `URLSearchParams` is not generic. And the built-in types for `window.history.state` is `any` without a generic. The only way to type check `location.state` or `location.search` or really any value on `location.*` is to do it at runtime and then get type hints from using type guards.

```ts
interface ModalLocation extends Location {
  state: "modal"
}
 

function isModalLocation(location) location is ModalLocation {
  return location.state === "modal"
}

if (isModalLocation(location)) {
  // runtime by necessity but now also type safe in here
}
```
rackt/history,rackt/history