Column arrangement: put all the outputs in one column with the c key (#12) master
Closes #6. ## What the change gives A user puts all the outputs in one column with the `c` key, in the same way that the `a` key puts them in one row. The outputs follow one another with no space and no overlap, and the arrangement starts at the origin. ## One function for the two arrangements `stack` in `crates/dynamonix-geom/src/arrange.rs` makes the line. The axis selects the direction: the row is the horizontal stack, and the column is the vertical stack. The two arrangements therefore cannot obey different rules, and the crate holds no second copy of the logic. The row arrangement of the interface now also goes through this function, and its behaviour does not change. The function is total and pure. The areas keep the order of their coordinates on the axis, two areas with one coordinate keep the order of the input, and each area keeps its size. ## The laws Three property tests examine the function with 256 groups of random values on each axis: - A second stack makes no more movement. - A stack keeps the count of the areas and the size of each area. - A stack leaves no space and no overlap between two areas, and it puts every area on the axis line. The arrangement is a change like every other change: one `u` removes it. ## Checks `cargo fmt --all --check`, `cargo clippy --workspace --all-targets --locked -- -D warnings`, and `cargo test --workspace --locked` all pass, with the clippy and the tests of Rust 1.90 also clean. The suite holds 247 tests, 11 of them new. The release build of Rust 1.90 passes. The tests need no terminal and no compositor. The whole change adds no package to the build. Reviewed-on: https://git.devtechnica.com/sreedev/dynamonix/pulls/12