Given a model of the types involved in a family of RPCs, this
functor provides a single multi-version implementation function
implement_multi in terms of that model and a mechanism for
registering the individual versions that implement_multi knows
about.