Collect all optimised allocate instructions in beam_block

Any init instruction following an allocate is put in the Inits list of the
corresponding alloc tuple.
Add missing recv_set, recv_mark and '%' to BEAM live annotation
Keep exit blocks in order when moving them in beam_jump

This makes applying the pass a second time a no-op.
Test compilation of BEAM assembly with optimisations on