Homestyx hydra

R1:75c4a185a9f1

Begin modularizing typeahead sources

Summary:
Ref T4420. This sets up the basics for modular typeahead sources. Basically, the huge `switch()` is just replaced with class-based runtime dispatch.

The only clever bit I'm doing here is with `CompositeDatasource`, which pretty much just combines the results from several other datasources. We can use this to implement some of the weird cases where we need multiple types of results, although I think I can entirely eliminate many of them entirely. It also makes…
Repository: R1 hydra
Commit Date: Feb 14 2014