## Description
Add support for `public struct` declarations in the Move 2024 edition.
To my knowledge this is the first backwards incompatible change, so we
need to split off a separate version of the move-stdlib that tracks the
new 2024 edition as well.
The bottom commit of this PR does this, and also refactors the test
runner so we aren't passing so many fields all the time in the test
runner.
## Test Plan
Added additional tests.
---
If your changes are not user-facing and not a breaking change, you can
skip the following section. Otherwise, please indicate what changed, and
then add to the Release Notes section as highlighted during the release
process.
### Type of Change (Check all that apply)
- [ ] protocol change
- [X] user-visible impact
- [ ] breaking change for a client SDKs
- [ ] breaking change for FNs (FN binary must upgrade)
- [ ] breaking change for validators or node operators (must upgrade
binaries)
- [ ] breaking change for on-chain data layout
- [ ] necessitate either a data wipe or data migration
### Release notes
Adds initial `public struct` type visibility support to Move 2024.alpha.
When using the Move 2024.alpha edition you will be required to write
`public` in front of the struct type which will keep the same semantics
as `struct` with no visibility modifiers today (i.e., in the `legacy`
edition), this is to allow for future support of private struct types.