Make AlgoliaSearch.prototype.search callback asynchronous always

Previously, it was usually an async callback but became synchronous
when the result was cached in this.cache. This violates best practice
that callbacks should either be always-sync or always-async.