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. 
There is still an XSS vulnerability here if the user changes their program name to be some malicious HTML and JS (which is doable by changing their transcript text when they paste).

What we can do to prevent that is simply move the `&nbsp;` logic here. That is, something like this:

```html
<p><%= _.escape(program) || '&nbsp' %></p>
```

Note that Underscore templates just execute JS, which is why you can use the `||` JS operator here.

http://underscorejs.org/#template