Start implementing symbol_memory module

This will be responsible for actually managing the scratch registers,
stack (or maybe heap?) memory, and shuffling values between them (as
well as providing assembly language names for the registers, which will
be used by client code during tree traversal/code generation).
This is still unfinished work at this point, what with memory-related
decisions needing to be made within this module, and et_compiler
requiring some weaning off the old SCRATCH_REGS paradigm.