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. 
It would be great to move this entire function (and all of the other functions it references, such as `onOpened` and `onSelected` and the definition of the engine) out of this `getData` function. Move it to be a top-level function in this file. It is good to reduce creating unnecessary closures (the nested functions here) because they use up more memory and overhead in order to keep references to the outside variables.

Though, you may want to change the signature of the `setUpAutocomplete` function to take the element on which the typeahead will be initialized on, and correspondingly change the first line of the function body to be `$(searchBarElement).typeahead(...);`