message: Drain events before closing to get token
  We routinely fail to get resumption tokens from our own server in the
  interop runner.  This should fix that.
diff: @@ -825,13 +825,7 @@ mod old {
  Ok(())
  }
  - fn handle(&mut self, client: &mut Connection) -> Res<bool> {
  - while let Some(event) = client.next_event() {
  - match event {
  - ConnectionEvent::AuthenticationNeeded => {
  - client.authenticated(AuthenticationStatus::Ok, Instant::now());
  - }
  - ConnectionEvent::RecvStreamReadable { stream_id } => {
  + fn read(&mut self, client: &mut Connection, stream_id: u64) -> Res<bool> {
  let mut maybe_maybe_out_file = self.streams.get_mut(&stream_id);
  match &mut maybe_maybe_out_file {
  None => {
  @@ -852,12 +846,36 @@ mod old {
  }
  self.streams.remove(&stream_id);
  if self.streams.is_empty() && self.url_queue.is_empty() {
  - client.close(Instant::now(), 0, "kthxbye!");
  return Ok(false);
  }
  }
  }
  }
  + Ok(true)
  + }
  +
  + /// Just in case we didn't get a resumption token event, this
  + /// iterates through events until one is found.
  + fn get_token(&mut self, client: &mut Connection) {
  + for event in client.events() {
  + if let ConnectionEvent::ResumptionToken(token) = event {
  + self.token = Some(token);
  + }
  + }
  + }
  +
  + fn handle(&mut self, client: &mut Connection) -> Res<bool> {
  + while let Some(event) = client.next_event() {
  + match event {
  + ConnectionEvent::AuthenticationNeeded => {
  + client.authenticated(AuthenticationStatus::Ok, Instant::now());
  + }
  + ConnectionEvent::RecvStreamReadable { stream_id } => {
  + if !self.read(client, stream_id)? {
  + self.get_token(client);
  + client.close(Instant::now(), 0, "kthxbye!");
  + return Ok(false);
  + };
  }
  ConnectionEvent::SendStreamWritable { stream_id } => {
  println!("stream {} writable", stream_id)
  