This factory creates an instance of a RemotePeer subclass based on the
given protocol type and peer-specific features. If given a list, it will
select the preferred one (generally the first one that matches an available
peer which accepts the given peer-specific features).
For now, we just have the LegacyPeer (which does not have specific
features, so that value is ignored).