refactor(typeahead): major restructuring

change updating mecanism from model watcher to parser
this provide better control of what actually gets to model
"selectMode" uses ngoptions "value" and changes model only upon valid selection
when not in "selectMode" model value updated with input string and upon selection changes to ngoptions "label"
"formater" to update viewValue use new "$parseOptions.displayValue" method