Memory changes for eval_macro()
Moved include_* to a separate file
Snapshotting of macro expansion states

This is incomplete - we now fully evaluate macros when we should only do
it twice.
Added note about macro-snapshot scope
Added macro() vs macro( )