Limit the number of guides search requests made.

Avoid searching at all when search term hasn't changed.

Do a basic search after small delay and then improve the results
of it with a guides search after a bit longer delay.
Replace magic numbers with constants for delays.
Move delayed search functionality to GuideSearch class.
Make search results paging work again.

But this time instead of re-running the search every time we
need to navigate to a new page, just remember the search results
and only render the page.