Implement some form of keyword searching

Old search algorithm simply showed courses which contained the search query
verbatim. A more appropriate result, and one that users might expect, is that
each word they enter serves as a keyword, gradually narrowing down results.