constructor(newClient, sameConnection) {
        this.newClient = newClient;
        this.sameConnection = sameConnection;
        this._pool = [];
    }
Pool keeps a list of clients indexed by connection objects

@param {function} newClient       Function that takes a connection object and creates a new client
@param {function} sameConnection  Function that returns whether two connection objects are the same