dynamic alloc/free
This MR adds dynamic memory allocation to the core language. We require this for RefinedRust, but RefinedC can just keep on not using it.
This is implemented in terms of a fairly canonical Alloc
expression and Free
statement, using the existing free_block
and alloc_new_block
definitions.