Formatter finds value synchronously

When using this library, we had a bug where several typeaheads on one page, whose value was set asynchronously, wouldn't display properly.

Specifically, the angular scope value was set correctly, but the text didn't appear inside the typeahead.

I tracked this down to the `$formatter` and it seemed to be the `query`/`search` calls which were causing problems. I wasn't sure why the typeahead would have to query the dataset during the formatting pipeline (as the value is already known, it just needs to display it) and removing this call fixed my bug.

Anyway, here's some code that works for me, and I was wondering if you could expand on what the role of the query call in the `$formatter` was.