I don't agree on this point. I really want it to be possible to create a HostPool with multiple Selectors composed together. To do that, I don't think we can rely on hidden implementation details of the Selectors (among other things, extensions shouldn't need to be in the hostpool package). I haven't quite gotten to that point in this pull req, due to some stuff with the implementation of `hostEntry` that I've been deliberately leaving to a subsequent pull req to keep things from getting too complicated. 

`MakeHostResponse` does the work necessary to update state based on the chosen host, I do think it's a necessary inclusion in the interface. Note here that we call out to the embedded Selector's `MakeHostResponse`, without privileged access to its implementation. That's the pattern I'd like to encourage for other Selectors going forward