QuorumPeer startOrReconfigure(ZookeeperServerConfig newConfig,
                                  VespaZooKeeperServer server,
                                  Supplier<QuorumPeer> quorumPeerCreator) {
        if (zooKeeperRunner == null) {
            peer = quorumPeerCreator.get(); // Obtain the peer from the server. This will be shared with later servers.
            zooKeeperRunner = startServer(newConfig, server);
        }

        if (newConfig.dynamicReconfiguration() && newConfig.reconfigureEnsemble()) {
            reconfigure(newConfig);
        }
        return peer;
    }
Starts zookeeper server and supports reconfiguring zookeeper cluster. Keep this as a component
without injected config, to make sure that it is not recreated when config changes.

@author hmusum
zookeeper-server/zookeeper-server-common/src/main/java/com/yahoo/vespa/zookeeper/Reconfigurer.java