Harden the push_varsize instruction

1. Assert heap validity
2. Refactor the instruction for clarity

This is the follow up commit to harder array handling at the push_varsize instruction. No new testcases required
Initial commit with tests: https://github.com/DynamoDS/Dynamo/pull/2516

@lukechurch