Hot refactor

Went back and fixed quoting on collection and search which I forgot to do in the last pushes.  Sorry about that :)
I see what you mean on a network traffic level, but I think that argues for the User object to not fetch data until an additional request is made. Not to break the OO model. The collection is always an attribute of a user.

Philosophically, the fewer arguments to a method the better, so to me making it part of the collection instantiation is not good factoring. At least not from a public API perspective. It encourages bad code smells elsewhere.