Converted the function integration to use template metaprogramming instead of macros.
Added a very rudimentary file I/O system suitable for experimenting with the language further. A better one will be designed when we have sensible error management.