refactor(typeahead): better updating and selectMode

change updating mecanism from model watcher to parser
this provide better control of whats actually gets to model
"selectMode" uses options "value" attribute and changes model only upon valid selection
When not in "selectMode" model value is synchronized with input string and upon selection changes to options "label" attribute
"formater" to update viewValue use new "$parseOptions.parseViewValue" method

matches are only updated on input change (via parser) so simply focusing a prestine control would just create an empty list
test(typeahead): add tests for keypress handling