Fix UI experience of typeahead in project settings

Now the button will change from "Add New" to "Add Existing" when a
user is selected.
Simplify typeahead API quite a bit

Instead of using & binding for the search and query functions, which
leads to needing to call them with a slightly complicated process (we
have to pass parameters using a Javascript object, and the HTML code
that uses the directive needs to know what name we gave the properties
of that Javascript object), using a = binding for these functions means
we can call them inside the directive code just like normal Javascript
functions, the HTML code doesn't care what names the parameters have,
and the API is just generally improved all around.

To change existing code to use the new API, replace 'search="foo(term)"'
and 'select="bar(item)"' with 'search="foo"' and 'select="bar"' in HTML.