Search for friends

#22 

This depends on #35 . Once that's merged, I'll rebase, and this PR will be more manageable.
I see!  It doesn't have to be a controller, it just makes sense for it to be one because the controller acts as a decorator and this component needs a little decorating (as explained in the above `AutoCompleteComponent` comment).  

:+1: