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. 
I would personally do this a little differently, but what you have is fine.

I'd take this approach:

```python
course_dicts = []
friend_dicts = []
for result_type in flask.request.args.get('result_types').split(','):
    if result_type == 'courses':
        course_dicts = [...]
    elif result_type == 'friends':
        friend_dicts = [...]
return api.jsonify({...})
```

This avoids doing the list searching you're doing when you have `if 'course' in result_type`. The performance difference here is definitely negligible, but what I have is a little more concise.

What you have at the moment is a tad inconsistent, since you do an if/else for courses, but do a declaration and an if with no else for the `result_types`.

I'll leave this to your discretion.