decomment 0.2.0

Remove comments from source text in 13 languages without touching strings, templates, or regex literals.
Documentation
# Changelog

## 0.2.0

Breaking.

- `Unterminated` is `#[non_exhaustive]`, which `Options` and `Stripped` already were. `strip`
  builds it and callers read its fields, so adding a field later is not a breaking change. Code
  that built one with a struct expression can no longer do so.

Other changes.

- `Mode`, `Language`, and `UnterminatedKind` derive `PartialOrd` and `Ord`, so they can sit in a
  sorted collection. The order is the order the variants are declared in.
- `include` in the manifest lists what the package ships: source, tests, README, the licenses,
  and this file. The package no longer carries `.gitignore`.
- `rust-version` reads 1.81.0, the same string the README states.
- A CI job builds the library and runs the doctests at the 1.81.0 floor. The full test suite,
  clippy, and rustfmt run on stable.
- Dual licensed under MIT OR Apache-2.0. `LICENSE` is now `LICENSE-MIT` and `LICENSE-APACHE`
  sits beside it. 0.1.0 stays MIT only.
- README states the MSRV in a `## Requirements` section.

## 0.1.0

First release.

- `strip` removes comments from source text in one pass and returns a `Stripped` holding the
  output and an optional diagnostic. It cannot fail and cannot panic, so there is no `Result`.
- `Language` covers C, C++, C#, CSS, Go, HTML, Java, JavaScript, Python, Rust, SQL, Swift, and
  TypeScript. Strings, templates, and regex literals are scanned, so a comment marker inside one
  is left alone.
- `Mode` picks what to remove, with `All`, `Line`, `Block`, and `First`.
- `preserve_newlines` writes back the line terminators that sat inside removed text, byte for
  byte. `keep_bang_comments` keeps a comment whose body starts with `!`.
- `Unterminated` and `UnterminatedKind` report a construct left open at end of input.
  `Unterminated` implements `core::error::Error`.
- `#![no_std]` with `extern crate alloc`. No dependencies and no cargo features.