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
feat(date): new dateFormatter helper

Factor out the date formatting handling into a new service `dateFormatter`.
While the default implementation uses angular's dateFilter and $locale, custom
implementations may use other libraries, e.g. [moment](http://momentjs.com/).

BREAKING CHANGE: If you include angular-strap files individually (from the `dist/modules`
directory) than `dist/modules/date-formatter.js` is now required to use the date/time
pickers.
chore(docs): add ngOptions & selectMode descriptions to typeahead