epic refactoring for our purposes

focused on formats that we are currently considering, removed others

tried multiple canonical structs, not just primitives

removed time from structs for now (should add again later)
It won't be perfectly reproducible due to differences in hosts, but I understand now that it is important to try to make the benchmarks as reproducible as possible by not introducing true randomness into them.

The "controlling variables" argument actually goes the other direction. It's better to control the influence of your input data on the result by making the input data the same every time. I think this is what Kevin and Byron were saying.

I switched back to math/rand.