a few fixes
preparing to properly introduce environments
implemented lexical scoping and actual local environments
fixed type-checking bug
implemented tail recursion for user-defined functions
if-forms are now tail-recursive
fixed define happening in the wrong place
fixed test demo