Bug fixes and minor enhancements

Changes:
- Added (as a provisional measure) a stage after macroexpansion to unbox any MacroArgument ConsValues
- Moved evaluation-related code into a separate file
- Cleaned up some code related to the macro vs function execution context feature
- Cons and ConsValue can now print out more informative descriptions using debugDescription
- Cons's evaluate method no longer returns the type of evaluation, as this was unnecessary
- Fixed a bug where macros were being evaluated twice after expansion