Search with typeahead

Switched everything over to use Typeahead.js and Bloodhound.js. Tried to keep proper formatting intact, but a second look would be appreciated. Will post screenshots as well. 
Once we start splitting dicts across lines like this, I find it a lot more readable to have one item per line.

```
course_dicts = [{
    'label': c.id,
    'name': c.name,
    'type': 'course',
     (...)
} for c in courses]
```