Initial commit

The repository was migrated from previous server to github.
Update .gitignore
Implement Frontend interface

Introduce project context which defines necessary options such as
predefined macros, search paths etc. Frontend handles each context
separately. Each context caches results of preprocessing, lexical and
syntax analysis. Two modes of parsing are provided:
 - rebuild of the entire project
 - updating data of only specified source file, use cached data when
   possible.

Enable parsing typical c and header files.
Add simple logging in Frontend for debugging purposes (log4j).
Fix ifndef directive handling
Parse included files separately

Included file's body is not pasted into currently being parsed file.
Included file is parsed separately and then its data is used in
current file.

Fixes in files graph (incoming edges in graph should be preserved when
the node is being modified).