`find_best_packing()`: optimize required order storage to `2 * std::size(subjects)`
Implements #16.
As it stands, this PR is a rough draft cobbled together in my spare time that compiles and seems to work. There are most likely some things to improve (especially variable names), but hopefully it'll serve as a good starting point.
CI seems to have caught something weird. I'll try to look into it soon™.
Oh yeah, I got some stuff completely backwards. Will try to fix if time allows for it.
Checks are currently failing due to a single misplaced rectangle, which is interesting. I'm still pretty short on time, so I won't get into debugging it right away—but it may very well be caused by some trivial UB or other coding error on my part (although ASan + UBSan stayed silent).