compress `alloc` before splitting expression into context/redex

Recent compressing of alloc steps breaks several tests (e.g. (fact 5) and (add1 (quotient 5 0))) because allocation turns some redexes into non-redexes, making vσ stuck. This pull request attempts to fix that by performing the context/redex splitting after allocations.