runnel 0.4.2

the pluggable io stream. now support: stdio, string io, in memory pipe, line pipe
Documentation
# Development Tasks

This checklist outlines the development tasks derived from the design specification. All tasks are marked as complete as they reflect the current state of the implemented source code.

### Core Architecture & Traits

- [x] Define the `StreamIn` trait for abstract input streams.
- [x] Define the `StreamOut` trait for abstract output streams.
- [x] Define the `StreamErr` trait for abstract error streams.
- [x] Implement the `RunnelIoe` struct to hold the three stream trait objects.
- [x] Implement the `RunnelIoeBuilder` to provide a fluent configuration API.
- [x] Set `stdio` as the default stream implementation in the builder.

### `medium::stdio` Module

- [x] Implement `StdIn` as a wrapper for `std::io::stdin`.
- [x] Implement `StdOut` as a wrapper for `std::io::stdout`.
- [x] Implement `StdErr` as a wrapper for `std::io::stderr`.

### `medium::stringio` Module

- [x] Implement `StringIn` for reading from an in-memory string buffer.
- [x] Implement `StringOut` for writing to an in-memory string buffer.
- [x] Implement `StringErr` as a distinct type that also writes to an in-memory buffer.

### `medium::pipeio` Module (Byte Pipe)

- [x] Implement `PipeOut` using `std::sync::mpsc::SyncSender<Vec<u8>>`.
- [x] Implement `PipeIn` using `std::sync::mpsc::Receiver<Vec<u8>>`.
- [x] Implement the `pipe()` factory function.
- [x] Ensure all access to shared pipe resources is thread-safe using `Mutex`.

### `medium::linepipeio` Module (Line Pipe)

- [x] Implement `LinePipeOut` using `std::sync::mpsc::SyncSender<Vec<String>>`.
- [x] Implement `LinePipeIn` using `std::sync::mpsc::Receiver<Vec<String>>`.
- [x] Implement the `line_pipe()` factory function.
- [x] Ensure all access to shared line pipe resources is thread-safe.

### Testing

- [x] Create unit tests for `stringio` to verify buffer manipulation.
- [x] Create integration tests for `pipeio` to verify multi-threaded byte-stream communication.
- [x] Create integration tests for `linepipeio` to verify multi-threaded line-based communication.
- [x] Create integration tests for `stdio` functionality where feasible.

### Documentation

- [x] Write crate-level documentation in `lib.rs` with usage examples for all major features.
- [x] Add doc comments to all public modules, traits, structs, and functions.