Separated logic into various modules
A lot of fixes, but still now compiling
At least it compiles now
The system now compiles and runs, albeit with a problem when reading the prelude
Prelude is now loading properly.

The only problem is that reader macro expansions do not work.
Fixed a bug where the global variables were looked for in the local environment and vice versa
Changed the function abstraction to cover macros and regular functions, as well as special functions.

Added orthogonal support for macro-phase and call-by-name.
Added infix operator, but the macro expansion then became a bit off