Hackathon example 2: Search functionality

This adds search functionality to be able to jump to any category (whether Topic, Exercise or Video) given the category's title.

Overview of search logic:
1. Frontend javascript requests a list of all the category titles, and sets them as the pool for the autocomplete engine.
2. User types on search box, and autocomplete suggests completions.
3. If the user submits a query corresponding exactly to a node, then the server redirects them to the node path.
4. Otherwise, the server performs a substring match on each title, and returns the result on a search result page.


Search page:
![screenshot 2013-10-06 at 07 31 31](https://f.cloud.github.com/assets/191955/1276789/56f66064-2e94-11e3-9a3a-bfea2d2907de.png)

Autocomplete:
![screenshot 2013-10-06 at 07 35 05](https://f.cloud.github.com/assets/191955/1276791/946548fc-2e94-11e3-9f6c-0dced8eab549.png)