Updating compiler to take in dependencies so that can create
libraries.
Instead of merging multiple multiple contexts together, recycling a
single context.  Note: we do not allow circular imports and the order
that we import files matter.
Updated struct library test so that compiler will resolve dependency, rather than having to copy-paste struct definition.
Ignoring preprocessor for imports.
Added lexer for preprocessing.
Removed dead code.
To skip tokens, return None.
Parsing preprocessor directives.
Added scripts for running preprocessor.
Minor typo: format string required additional arg.
Added code to automatically generate include depencies from
preprocessor and fetch code associated with those dependencies.  Still
requires much testing.