no_std support.
This PR is similar to other no-std PRs, however it takes the approach of using the new core::error module in Rust 1.81. This means that no-std mode has an MSRV of Rust 1.81, while the existing MSRV of 1.49 is still supported for existing users, as suggested here.
This PR also preserves semver compatibility, and avoids adding any new dependencies or required features for existing users. And it avoids modifying the tests and benchmark sources, as those don't need to be no-std. And it avoids making any unrelated changes.
And, it adds CI coverage and README.md documentation.
Fixes #551.
Just a suggestion, maybe you can create a compatible layer like serde-rs do: https://github.com/serde-rs/serde/blob/master/serde/src/lib.rs#L166-L287
@ivila I can make that change, if the maintainers here would prefer it that way.