Search Backend Option, Caching, and More

These changes are a bit opinionated, so I completely understand if you don't want to pull them in. I do think they provide some nice improvements though.

* Removed keyswitching. I felt like this is a fairly specific use case – the extension should cover the common use case and then leave it up to the dev to add specific customizations.
* Added the option to use the built in search backend instead of stored `Spree::Suggestion`. This is helpful when using a more complex (and accurate) search backend like `spree_sunspot_search`
* Cache results for performance