Typeahead

Hello.
Added selectMode capabilities to typeahead.

When selectMode is "on" model value is only set upon select and it receives the option "value"
It also rejects new characters that don't match any item.
When "off" model will be set to any text in input and when selected it receives the option "label".
I added a directive "parser" that controls all the verification and selection process and a "formater" to convert a default model "object" value to view "text" value using a new "calcViewValue" in "parseOptions" provider.

Another change is that typeahead visibility is managed without "isVisible" watch.
I also removed "watchOptions" because I don't think it would be necessary now. Is there any use case for it?

Also added some tests and changed some other because now simply focusing on the element won't call the typeahead, you must enter some value.
I also added a "attrs" parameter to the compileDirective function in the specs to simplify reusing templates.