refactor(typeahead): add TypeaheadController

Maintain feature parity. Some duplicate code.
refactor(typeahead): Remove extra calls to loading