Refactor search

This pull request completely refactors how search works. The overarching goal of the refactoring was to separate `SP_Search` into more specific features. Search was initially tied to, and depended on, the main query. `SP_Search` handled this auto-integration, but then provided methods for using ES args or WP-style args for doing additional searches. While handy, these were bound to the main singleton, which didn't make much sense. This update separates these three distinct features into their own classes:

* `SP_Search`, which is the main class for performing a search with Elasticsearch, using the ES Query DSL
* `SP_WP_Search`, which extends `SP_Search` to add support for wp-style arguments
* `SP_Integration`, which replaces core's search with SearchPress (and uses `SP_WP_Search` to perform the query)
I'd like to know what that is a hash of. Hopefully something funny.