The move compiler makes heavy use of recursion, and at `opt-level`
less than or equal to `1`, some of its stack frames can be ~80KiB in
size which can cause compiling relatively simple Move programs to fail
with a stack overflow.
Enabling `opt-level = 2` makes a big difference to these stack frames,
reducing their size by up to 10x, which alleviates the stack
overflows, and also allows us to wind back a previous workaround which
involved running tests with (very) large thread stacks (128MiB).
My suspicion (not confirmed) is that the main optimisation helping in
this case is one where local variables with non-overlapping lifetimes
are allowed to overlap in their use of stack space, which can be
especially helpful when the local variables exist along distinct
conditional branches or match arms.
Test Plan:
Run all tests
```
sui$ cargo simtest --no-fail-fast
sui$ cargo nextest run --no-fail-fast
```
Confirm that the stacktrace within a test that is known to stack
overflow contains (much) smaller stack frames:
```
sui$ rust-lldb ./target/debug/deps/sui-core-... test_move_call_mutable_object_not_mutated
(lldb) command script import ./scripts/lldb_frame_sizes.py
(lldb) b move_compiler::hlir::translate::exp_impl
(lldb) b move_compiler::hlir::translate::exp_::exp_loop
(lldb) run
(lldb) frame-sizes
```
Before:
```
73520B move_compiler::hlir::translate::exp_impl::h6ae8d9cffb6bda2a (translate.rs:1101:34)
80608B move_compiler::hlir::translate::exp_::exp_loop::h8602552e346e1ddd (translate.rs:1019:29)
2416B move_compiler::hlir::translate::exp_::h694ef605af4c0906 (translate.rs:1032:5)
17408B move_compiler::hlir::translate::statement::h62960adc8fa911ed (translate.rs:614:22)
7088B move_compiler::hlir::translate::block::haa6418b9aef3a15c (translate.rs:570:27)
... [snip] ...
```
After:
```
7360B move_compiler::hlir::translate::exp_impl::hf00087ef9e004e16 (translate.rs:1063:21)
9824B move_compiler::hlir::translate::exp_::exp_loop::h6affec8d02a5283a (translate.rs:1019:29)
1392B move_compiler::hlir::translate::exp_::h06753bb8c7bf5628 (translate.rs:1032:5)
4112B move_compiler::hlir::translate::statement::h9a8095baef2ff771 (translate.rs:640:21)
0B move_compiler::hlir::translate::block::heec8e8b700447d80 (translate.rs:570:27)
... [snip] ...
```
See #6781 for a definition of `frame-sizes`
Closes #5583