message: transport: Fix a bug where we could prematurely indicate fin was set
  Even if in DataRecvd, the read could be for less than the amount buffered,
  in which case we should only report fin if the last byte in the stream was
  read in the given read() call.
diff: @@ -476,9 +476,10 @@ impl Recvable for RecvStream {
  | RecvStreamState::SizeKnown { recv_buf, .. } => {
  Ok((recv_buf.read_with_amount(buf, amount)?, false))
  }
  - RecvStreamState::DataRecvd { recv_buf, .. } => {
  - Ok((recv_buf.read_with_amount(buf, amount)?, true))
  - }
  + RecvStreamState::DataRecvd { recv_buf, .. } => Ok((
  + recv_buf.read_with_amount(buf, amount)?,
  + recv_buf.buffered() == 0,
  + )),
  RecvStreamState::DataRead { .. }
  | RecvStreamState::ResetRecvd
  | RecvStreamState::ResetRead => Err(Error::NoMoreData),
  