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 take there is no way to work around using this? If we ever put this plugin on VIP, we'd probably want to check for th VIP environment here and then use wpcom_vip_get_term_by