Don't open files in FileLexerSource, to reduce the number of open file handles
Made Source.getPath() public
Expose creation of macros map to subclasses (used by JNAerator to monitor actual usage of macros)
Expose Preprocessor.include method to subclasses to allow JNAerator's workaround to https://github.com/shevek/jcpp/issues/5