This PR reverts adding `reclaim_memory` method.
Reverts several recent commits in a single change:
- `6e397bd` fix: use conservative bucket reuse that survives reload #394
- `00468e1` docs: update memory reclamation examples in the docs #392
- `b911479` docs: cleanup documentation #391
- `d1fde89` docs: use reclaim_memory() name and update docs accordingly
#388
- `a18917b` docs: add safety documentation and tests for manual bucket
release #387
- `73e96e8` feat: add manual bucket release to prevent memory waste #386
This PR restores the codebase to the state before these commits.
Done with `git revert -n 6e397bd 00468e1 b911479 d1fde89 a18917b
73e96e8`
The reason for reverting this approach was that it can reclaim unused
memory in theory but provides little benefit in real-world migrations.
All due to the requirement to keep buckets in ascending order in each
VM.
Example 1: Reuse works
```
A allocates: [0, 4, 5]
B allocates: [1, 2, 3]
A frees: [0, 4, 5]
B grows: can reuse bucket 4 (since 4 > max(B) = 3)
B after grow: [1, 2, 3, 4]
```
Example 2: Reuse fails
```
A allocates: [0, 1, 2]
B allocates: [4, 5, 6]
A frees: [0, 1, 2]
B grows: cannot reuse any freed bucket (all < max(B) = 6), so allocates new bucket 7
B after grow: [4, 5, 6, 7]
```
In real life when migrating state A to state B, state B created after
state A grown, so it's first bucket ID is already higher than any free
bucket in state A virtual memory, therefore can not be reused.
This PR improves memory reclamation examples with assertions that demonstrate real underlying memory changes — showing before/after usage.