x86-native 0.1.0

Cross-platform native x86 machine library with image, bootloader, and saved-state APIs
Documentation
# Image loading examples

## Local resources

```rust,no_run
use x86::{Image, ImageKind, Machine, MachineConfig};

fn main() -> x86::Result<()> {
    let mut machine = Machine::new(MachineConfig::default());
    machine.set_bios(Image::from_file(ImageKind::Bios, "seabios.bin")?)?;
    machine.set_vga_bios(Image::from_file(ImageKind::VgaBios, "vgabios.bin")?)?;
    machine.set_disk(Image::from_file(ImageKind::RawDisk, "disk.img")?)?;
    machine.set_cdrom(Image::from_file(ImageKind::Iso9660, "installer.iso")?)?;
    Ok(())
}
```

## Memory resources

```rust,no_run
use x86::{Image, ImageKind, Machine, MachineConfig};

fn main() -> x86::Result<()> {
    let mut machine = Machine::new(MachineConfig::default());
    let bios = Image::from_bytes(ImageKind::Bios, "generated-bios", vec![0u8; 64 * 1024]);
    machine.set_bios(bios)?;
    Ok(())
}
```

## Native URL bootloader

```rust,no_run
use x86::{Machine, MachineConfig, Resource};

fn main() -> x86::Result<()> {
    let mut machine = Machine::new(MachineConfig::default());
    machine.load_bootloader(Resource::url(
        "https://example.org/bootloader.bin",
    ))?;
    Ok(())
}
```

## Integrity checks

```rust,no_run
use x86::{Image, ImageKind};

fn main() -> x86::Result<()> {
    let image = Image::from_file(ImageKind::RawDisk, "disk.img")?;
    println!("sha256 = {}", image.sha256());
    image.verify_sha256("put-the-expected-sha256-here")?;
    Ok(())
}
```

## Saved state

```rust,no_run
use x86::{Machine, MachineConfig, SavedState};

fn main() -> x86::Result<()> {
    let mut machine = Machine::new(MachineConfig::default());
    let state = SavedState::from_file("machine-state.bin.zst")?;
    println!("summary = {:?}", state.summary());
    machine.set_saved_state(state);
    Ok(())
}
```