Add C preprocessor grammar rules

Also add a script 'stub.sh' for creating final executable 'codemate'.

Known bugs:
- Because COMMENT is skipped, the negative condition in conditionDirective
  will be interfered.
Handle dependency macros

In use statements, when there are conditional C preprocessor directives,
the involved macros are called dependency macros. If there is no define
or undefine directives about them, CodeMate will ask user for them.
Refactor codes

Change all the UI caller to 'codemate' to provide a consistent console
output.

Add dependency macros that are added by user into Makefile.
Change help output

User can print help of individual operator.