image-texel 0.4.0

A texel type and allocated buffers suitable for image data.
Documentation
# v0.4.0

- Add `AtomicImage`, `CellImage` and several supporting types and interfaces.
  These replicate large parts of the `Image` and `ImageMut` types but allow for
  operations on a shared buffer, wrapping `Arc` and `Rc` respectively.
- Added `PlaneOf` trait, a relationship between a layout, and index, and a
  subcomponent of the layout. All image reference types implement a form of
  `into_planes` that splits them apart by those components.
- Added a `Relocate` trait for layouts that can be move to another location
  in a buffer.

## v0.3.1

- Fix compilation on non-explicit targets, where the maximum alignment will
  default to a standard of `8`. This affects the Tier 1 targets: `mips`,
  `powerpc`, `s390x` and others.

## v0.3.0

- UB: Fix `Texel::{try_to_slice_mut,cast_mut_bytes}` casting a non-mutable
  pointer to a mutable slice. This is a local error, the input parameter was
  properly mutable. Commit: 67b5bc9f54f2d348415d52aee34ee9b224860bc5
  No LLVM analysis *can* make use of this UB / unsoundness as of LLVM 13.
- `{Image,ImageRef,ImageMut,TexelBuffer}::{as_texels,as_mut_texels}` now return
  a slice truncated to the portion covering the logical size of the respective
  buffers. This is breaking as it required their layouts to be `Layout`.

## v0.2.1

- Added `Image{Ref,Mut}::split_layout` to re-use excess storage with a
  different layout, enabling splitting an image into separated planes. This
  enforces splitting at a maximum alignment boundary.

## v0.2.0

- Fix the signature of `Texel::try_to_slice_mut`.

## v0.1.2

- `Texel::for_type` is now a `const fn`, allowing certifying from a `bytemuck`
  trait instance at compile time.
- The alignment&size guarantee for `x86`/`x86_64` is now `32`.
- Added other architectures: `arm`, `aarch64`, `wasm32`.
- Added impls of `AsTexel` for all stable primitive vector types of architectures.

## v0.1.1

- Implement `AsTexel` for `[T; 5..8]` where `T: AsTexel`.

## v0.1.0

- No large changes from 0.0.6 in terms of API but all texels are now required
  to be non-ZST. A few utility constructors for different texel conversions.

## v0.0.6

- Add mapping operations over pixels of a buffer or canvas
- Fix a bug that caused reallocations to be too short

## v0.0.5

- Update `zerocopy` to a version supporting `f32`