Allow for easier search form customization

The following changes are necessary to allow customizing the search form to have just one query field.

* Detect whether the search form was submitted by testing for the button, not an arbitrary field which an implementation might not have.
* Split the `get_queryset` method to enable customizing search without code duplication.