Altered header configuration
Added allocation folding to the optimization pass
Added if-else statements
Cleaned up the branching code.
Significantly enhanced the code generation and comments.
Fixed up the flags in the AST structure
Enhanced the conditional branching to behave like conditional gotos
Imporved the formatting for array indexing
Now using EXTENDF for building the .data section
Standardized the representation of string literals
Fixed formatting of most of the code.
Added a return statement check.

Before now there was nothing that would stop a programmer from writing
a function without a return statement at the end (in a void function)
and thus no code would be generated in that case.  This has been
patched in the semantic pass.
Fixed the issue with seg-faults and asserts leaving temp files.
Fixed issues from make syntax-check
Made the runtime of the compiler more abstract.
The compiler now allows multiple source files on the cmdline.

This required some major changes to the system as well as the
inclusion of new gnulib modules (xlist and array-list) to facilitate
the process.
Added support for xz archives
Documentation of new code
Added blocks that protect global vars
Merge branch 'more_comments'