Implemented define, changed set! to work when a variable doesn't exist yet, changed some spacing. A18 test cases don't exist yet.