search: debounce change events before performSearch
Previously, a search was performed for every change event. This meant that many partial requests were made, for example when the user wanted "rivers", they would end up searching for "r", "ri", "riv" etc. We use the _.debounce function to wait until 250ms since the last change event before triggering the performSearch callback.