Created a function ast_cat

ast_cat concatenates any two lists of ASTs so that they form one
single linked list.  This has been reflected in all of the files that
use the AST so that it works and compiles.
Began making the AST more extensible
Completed compatibility with new AST
New AST is now in place, optimizer was patched
Made template cleaner.
Added hexadecimal and octal support
Made lexer take the file and line number from directives
Extended the compiler to use the preprocessor
Separated the option processing from the sub-program routines.
Commented a large amount of code.
Comments added to header file
Broke up the main header file into another one.
Added inline functions to lib.h

The inline module was added from gnulib to support the patch.