Various changes:
- Added list mutators append! and prepend!
- Added a file name to errors.
- Added progn as a special form - it doesn't work as a macro.
- Changed when to use progn so that (define)s work inside its body.
Fixed eval and macros when and unless.
Changed MO5 script to use pairs (cons cells) instead of arrays.