Refactor `get_prediction_queryset`

Replace with `parse_and_get_queryset` which comprises three underlying
functions:

- `parse_location`
- `parse_time_range`
- `get_queryset`

This allows gives other code access to the time range/location parsers,
so that they can call get_queryset directly.

Also now when the `start` parameter is omitted it's a 400 error rather
than just silently not returning any results. Had to update a test for
this.
Add (failing) tests for extend windows code

[#74438722]
WIP ratty extend windows implementation