feat(typeahead): add typeahead directive

Closes #114