message: transport: Fix bad logic around locally-created streams in obtain_stream()
  Don't error out or do anything except look local streams up. Implicit
  stream creation only applies to peer-created streams.
diff: @@ -1593,6 +1593,8 @@ impl Connection {
  &mut self,
  stream_id: StreamId,
  ) -> Res<(Option<&mut SendStream>, Option<&mut RecvStream>)> {
  + // May require creating new stream(s)
  + if stream_id.is_peer_initiated(self.role()) {
  let next_stream_idx = if stream_id.is_bidi() {
  &mut self.local_next_stream_idx_bidi
  } else {
  @@ -1601,18 +1603,6 @@ impl Connection {
  let stream_idx: StreamIndex = stream_id.into();
  if stream_idx >= *next_stream_idx {
  - // Creating new stream(s)
  - match (stream_id.is_client_initiated(), self.rol) {
  - (true, Role::Client) | (false, Role::Server) => {
  - qwarn!(
  - "Peer attempted to create local stream: {}",
  - stream_id.as_u64()
  - );
  - return Err(Error::ProtocolViolation);
  - }
  - _ => {}
  - }
  -
  let recv_initial_max_stream_data = if stream_id.is_bidi() {
  if stream_idx > self.local_max_stream_idx_bidi {
  return Err(Error::StreamLimitError);
  @@ -1676,6 +1666,7 @@ impl Connection {
  }
  }
  }
  + }
  Ok((
  self.send_streams.get_mut(&stream_id),
  