Migrate most of the code from builtin_def to builtin_put
Fix a bug with error output when an unbound symbol is evaluated
Fix a bug in builtin_head that caused the list to be completely empty
Output the code in a lambda instead of a generic message, for easier distinction.