Rename our existing Selection to SelectionRequest

[refs #79394416]
Add controller.selectionRequest() [refs #79394416]

* Every endpoint that uses a selection uses the same parsing logic
* Frontend endpoints ignore "q"
* API endpoints ignore everything _except_ for "q"
* Frontend endpoints use SelectionRequest directly, jankily
* API endpoints convert from SelectionRequest to Selection (no caching)